省选模拟73
A. 决战
容易发现只要状压最后一行的状态就可以推出下一行的状态。
然后预处理一下转移是否合法就行了。
然而这并不是正解。
正解的做法似乎是将dp看成一个多项式,然后用矩阵优化。并不是很懂。
B. gift
显然的分数规划,二分一个值,然后就是在费用变成了k倍的情况下最大收益是否为0。
发现贡献的形式就是两个同时选造成一定贡献,所以就是网络流最小割模型。
然后直接跑就行了。
C. 质数
考场上打了min25筛,然后发现也就能跑1e11左右,果然理论复杂度都是骗人的,实际运算次数比理论复杂度多了个10倍的常数。。。
正解是考虑$2^{f(i)}$实际上就是$ [ij==n][gcd(i,j)==1]$的点对数,所以可以套个莫比乌斯反演上去。
然后推一推式子就行了。复杂度最后是$n^(0.5)ln(n)$。