2018 ICPC 徐州网络赛

2018 ICPC 徐州网络赛

A. Hard to prepare

题目描述:\(n\)个数围成一个环,每个数是\(0\)~\(2^k-1\),相邻两个数的同或值不为零,问方案数。

solution
将环变成链,设\(f[i][0\)~\(2]\),分别表示与第一个数相同,与第一个数不同,与第一个数相同,与第一个数的反相同。然后\(dp\)即可。

时间复杂度:\(O(n)\)

B. BE, GE or NE

solution
根据题目描述\(dp\)即可。

时间复杂度:\(O(nm)\)

C. Cacti Lottery

题目描述:有一个九宫格,里面是\(1\)~\(9\),有些数字是知道的,有些是别人知道你不知道,有些是双方都不知道。现在别人从九宫格中选择一行或一列或对角线,得到的分数为选择的格子的和对应的分数,别人会使这个分数尽量大,问期望值。

solution
枚举九宫格的所有情况,对于别人来说,他一定会选择八种情况中期望值最大的,所以记录每种他知道的情况对应的最大期望值,然后再求总的期望值。

时间复杂度:\(O(9! \cdot 8)\)

D. Easy Math

题目描述:给定\(n, m\),求\(\sum_{i=1}^{m} \mu(in)\)

solution
\[ \sum_{i=1}^{m} \mu(in) \]
\[ =\mu(n) \sum_{i=1}^{m} [gcd(i, n)==1] \mu(i) \]
\[ =\mu(n) \sum_{d|n} \mu(d) (\sum_{x=1}^{m/d} \mu(xd)) \]
括号内的式子是一个子问题。\(m'=m/d, n'=d\),当\(n'=1\)时,就是一个求\(\mu\)的前缀和的问题,有杜教筛就可以求解。

时间复杂度:\(O(能过)\)

F. Features Track

题目描述:求一个数对连续出现次数的最大值。

solution
排序,计数。

时间复杂度:\(O(nlogn)\)

G. Trace

题目描述:依次给出\(n\)个内部不透明的矩形,矩形在第一象限且紧贴坐标轴,问能看到的边的总长。(矩形没有包含关系)

solution
将\(x, y\)边分开处理。对于\(x\)边,将边按\(x\)从小到大排序,那么他们的长度是递减的。对于第\(i\)条边,用set算出时间比\(i\)小的有多少条,那么这些边的贡献都要减去\(i\)的长度,然后删掉这些边,把\(i\)加进去,算上\(i\)的长度贡献。\(y\)边也一样。

时间复杂度:\(O(nlogn)\)

H. Ryuji doesn't want to study

题目描述:有一个序列,两种操作:1. 给定区间\([L, R]\)求,\(\sum_{i=L}^{R} a[i](R-i+1)\) 2. 改变某个数的值。

solution
线段树,树状数组都可以维护。

时间复杂度:\(O(nlogn)\)

I. Characters with Hash

solution
模拟。

J. Maze Designer

题目描述:有一个\(n \times m\)的网格图,网格边上有权值,表示在这条边建一堵墙的花费,现在要在一些边建墙,使得任意两个格子有且只有一条简单路径,而且花费最小,然后有若干个询问,询问某两个格子之间的距离。

solution
最小生成树+LCA查询树上两点间的距离。

时间复杂度:\(O(nlogn)\)

K. Morgana Net

题目描述:求一个特定的二维卷积。

solution
可以将原矩阵变成一个一维向量,根据\(B\)矩阵求转换矩阵,定义乘法为与操作,加法为异或操作。用矩阵快速幂即可求解。

时间复杂度:\(O(n^6logt)\)

上一篇:Android自己定义处理崩溃异常


下一篇:【Java学习笔记】Hello world