XXI Opencup, GP of Tokyo 乱做

https://codeforces.com/gym/102978

A. Ascending Matrix

考虑每个值的轮廓线,如果忽略最后一个限制时,就是求从右下到左上的 \(k-1\) 条不穿过路径的条数。做法是把起点和终点平移一下转成不相交然后用 LGV 引理。

现在加上了 \(a_{R,C}=V\) 的限制,那么相当于从下往上数的第 \(V-1\) 条路径在 \((R,C)\) 的下方。于是可以把 \((R,C)\) 也平移一下然后给所有在其下方的路径乘上 \(x\),最后求的就是行列式的 \(x^{V-1}\) 的系数。

可以代点值进去做行列式然后再插值回来,复杂度 \(O(K^2(N+M)+K^4)\)

https://codeforces.com/gym/102978/submission/130049276

E. Edge Subsets

容易转化为 \(\gcd(A,B)=1\) 的情况。

将点 \(v\) 放在 \((x,y)\) 上,满足 \(x=\lfloor v/B\rfloor,yA\equiv v\bmod B\),这样每条边只可能为向上,向右,向右上或连接 \((x,B-1)\)\((x+1,0)\)

考虑从左到右插头 dp,复杂度为 \(O(n2^B)\);从上到下插头 dp,由于最后一种边的存在需要记录最顶行的状态,复杂度为 \(O(n4^{n/B})\)

拼一下,复杂度为 \(O(n2^{\sqrt{2n}})\)

https://codeforces.com/gym/102978/submission/130017181

G. Games

\(k\)-nim 游戏结论,先手必败当且仅当将每一堆石子个数写成二进制,每位相加后均为 \(k+1\) 的倍数。

于是这题可以 \(k+1\) 进制 FWT 然后快速幂就行了,发现模 \(998244353\) 意义下 \(7\) 次单位根存在,所以这个非常好做。

https://codeforces.com/gym/102978/submission/129980678

H. Harsh Comments

用期望的线性性拆开,答案为每个 \(B\) 再所有 \(A\) 后面的概率之和。这就是个猎人杀,而且可以直接背包而不用分治 FFT。

https://codeforces.com/gym/102978/submission/110948025

J. Japanese Knowledge

https://codeforces.com/gym/102978/submission/116032398

posted @ 2021-10-05 15:02  Y25t  阅读(515)  评论(1编辑  收藏  举报