传送门
https://codeforces.com/contest/1562
Table of Contents
靠字符串题涨了点分 > <、
Problem B. Scenes From a Memory
给定一个不包含数字 0 的数,要求保留最少的数字,使得最后不是素数,有多解任意输出一组即可,保证一定有解。
先写个保留数字尽可能少的爆搜,然后果断猜一下最后保留的数字不会太多。。。
具体的话,就是如果存在 1 4 6 8 9 那么显然就是 1 位,剩下的只有。。
2 3 5 7 。。那么不能出现重复的数,否则可以整除 11,那么鸽巢一下方案已经非常少了。
最后结论貌似是保留 2 位即可。。。
当然用上面的爆搜的话,其实不用仔细去推,随便给个差不多的上界直接爆过去即可。。。
Problem C. Rings
脑经急转弯。
Problem E. Rescue Niwen!
挺傻的一眼题。。。套个 sa 模板就可以写 dp 了,中间类似求重复子串,要去掉 lcp。
LL z = 0; REP_1(i, n) { dp[i] = (n - sa[i]); FOR(j, 1, i) if (sa[j] < sa[i]) { checkMax(dp[i], dp[j] + (n - sa[i]) - lcpp(sa[i], sa[j]) ) ; } checkMax(z, dp[i]); } cout << z << endl;
O(n2) 爆过去即可,lcp 甚至可以暴力写。所以这个 dp 的复杂度可以进一步优化吗?