T1题解
用dp[i][j]表示到i这个位置,mod后值为j的最大和
则转移方程是 dp[i][j]=max(dp[i-1][j],dp[i-1][((j-a[i])%m+m)%m]+a[i])
T2题解
用f[i,j]表示在s[1..j]中将s[i..j]切割为一段的方案数,用num[i,j]表示对应的十进制数字
因为(num[i,j])不含前导(0),所以(f[i,j])可以从fk,i-1转移得到。
而对于f[2i-j-1,i-1]能否转移,则要看num[2i-j-1,i-1]和num[i,j]哪个大。
若(num[i,j])大,则可以转移。
那么现在最后的问题就是怎么快速判断上面两个的大小
可以用哈希
本题用来防ak
T3题解
预处理出割点(割点就是在一个无向图中,如果去掉一个点和它所连出去的的所有边,使得剩下的点不联通即分成一个以上的强连通分量时,这个点被称为割点。),统计每个点的度,如果m-这个点的度==n-2并且这个点不是割点,那么它就可以删。
本题用来防止大佬ak