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
括号内的式子是一个子问题。(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 imes m)的网格图,网格边上有权值,表示在这条边建一堵墙的花费,现在要在一些边建墙,使得任意两个格子有且只有一条简单路径,而且花费最小,然后有若干个询问,询问某两个格子之间的距离。
solution
最小生成树+LCA查询树上两点间的距离。
时间复杂度:(O(nlogn))
K. Morgana Net
题目描述:求一个特定的二维卷积。
solution
可以将原矩阵变成一个一维向量,根据(B)矩阵求转换矩阵,定义乘法为与操作,加法为异或操作。用矩阵快速幂即可求解。
时间复杂度:(O(n^6logt))