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 floor,yAequiv vmod 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) 的倍数。
于是这题可以 (k) 进制 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
orz p_b_p_b。