@RabbitHu
2017-08-28T14:59:46.000000Z
字数 292
阅读 1508
作业
dp[i][j]表示剩余矩阵为i行j列时是否必胜,如果必胜则dp[i][j] = 1。
sum_left 表示向左前缀和是否为奇数、sum_up 表示向上前缀和是否为奇数。
dp[i][j] = (!sum_left[i][j] && dp[i - 1][j]) || (!sum_up_[i][j] && dp[i][j - 1])
暴力模拟打表……
求前缀和,用cnt[i] 数一下 模k等于i的前缀和有多少个。从左到右扫一遍,如果当前前缀和模k等于i,那么当前cnt[i]个前缀和每个都可以与新的前缀和相减,得到一个合法区间。所以此时 ans += cnt[i] 即可。