codeforces题解
hupopoo
菜狗子一枚,记录下最后icpc的挣扎。
展开
-
codeforces #556(div1)
B. Three Religions dp 题意:给一个主串和3个子串,每次可以在一个串后面增加或者删除一个字符。问3个串与主串的相同子序列是否可以不交叉。 首先不考虑加入或者删除,那么用dp[i][j][k]表示3个子串分别匹配到第i , j , k位置在主串最小位置在哪。然后用个nxt[i][26]表示主串每个位置且后面填’a’-‘z’会跳到主串的哪个位置,预处理倒着扫一遍就可以了。这样可以O...原创 2019-05-04 10:27:10 · 200 阅读 · 0 评论 -
codeforces1100 F. Ivan and Burgers(线性基)
cf1100f 线性基 题目链接 题意:给一个(n<=5e5)的序列,有(q<=5e5)次询问,每次询问一段【l,r】区间内选一些数出来能构成的最大xor值是多少。 题解:首先选一些数使得他们的异或值最大,线性基的基本操作。(不会就看这篇大佬的博客)。那么如何处理多个区间查询操作呢。最直接的想法就是用个数据结构来为维护,比如线段树每个节点维护一个区间的线性基,那么两个线性基的合并时...原创 2019-07-25 18:11:00 · 147 阅读 · 0 评论 -
cf1204E - Natasha, Sasha and the Prefix Sums
题目链接 题意:由n个1和m个-1的构成所有序列中,Σf(前缀和最大值)是多少。如果当前序列的前缀和最大值小于0,则认为是0.(n,m<=2000,最后结果对998244853取模) 题解:首先看数据量明显是个二维的dp问题,dp[i][j] 表示答案,那么如何转移呢?首先若求出dp[i-1][j] 的答案,那么往前面加上一个1就相当于将dp[i-1][j]的所有序列的贡献都加上了1,所...原创 2019-08-21 20:35:01 · 194 阅读 · 0 评论 -
codeforces787C(存在平局的博弈+往前递推)
题目链接 题意,有n个点排成一个圈。有一个棋子,两个人轮流在各自集合选出一些数来移动棋子。将棋子移动到点1的人获胜,求棋子在2~n且两个人先手情况下的获胜情况 题解: 必胜态:后继状态对方有一个必败态 必败态:后继状态对方都是必胜态 平局:其他情况。因为我们已经不能必胜,但败更不优,所以其他情况就是平局。 那么我们可以设dp[i][j]dp[i][j]dp[i][j]表示第iii个人在jjj个...原创 2019-09-29 17:24:25 · 211 阅读 · 0 评论