![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
ShawnBox
这个作者很懒,什么都没留下…
展开
-
【思维题】【DP】AGC019 B —— Reverse and Compare
题目传送门 一开始在想关于回文串的操作,直到我意识到这个数据范围 d[i]表示前i个字符进行操作能够得到的不同串数量. 那么转移分为两部分,一部分是当前这个位置不动,加上前i-1个位置的答案;另一个部分是将以i结尾的某个区间翻转.注意如果直接算这两个部分会有一部分是重叠的,所以进行翻转操作的区间起点不能和当前位置一样. 综上,d[i]=d[i-1]+sum-cnt[s[i]-'a'].其中sum是...原创 2018-10-08 20:36:27 · 183 阅读 · 0 评论 -
【组合数学】【DP】三校联考 10.15 —— Chess
题目描述 dirty 在一个棋盘上放起了棋子。 棋盘规格为 n ∗ m,他希望任意一个 n ∗ n 的区域内都有 K 个棋子。dirty 很快就放置好了一 个满足条件的棋盘方案,但是他认为这样过于简单了,他希望知道有多少个满足条件的方案。 看题第一眼即可知道是关于组合数学的. 通过观察发现,如果棋盘上前n列已经定了,那么之后的情况只会是前面n列的循环.因此只需考虑n列. 可以得出以下式子 sum=...原创 2018-10-15 19:25:46 · 160 阅读 · 0 评论 -
【树形DP】SRM621 D1L2(TopCoder - 13086) —— TreesAnalysis
题目传送门 题意 给定两棵树,树上的点分别用0~n-1标号,定义两条不在同一棵树上的边的相似度S(e1,e2)S(e1,e2)S(e1,e2),且定义两棵树的相似度为所有边的相似度的平方和. S(e1,e2)S(e1,e2)S(e1,e2)的计算方法: 将e1从第一棵树中删除,得到两个联通块,且记两个联通块中点的标号的集合为A,B. 将e2从第二棵树中删除,得到两个联通块,且记两个联通块中点的标...原创 2018-10-25 17:57:29 · 181 阅读 · 0 评论 -
【DP】SRM642 D1L2(TopCoder - 13319) —— TaroCutting
题目传送门 稍微有点思维难度的DP 首先可以明确一个性质,每棵树只会被砍一次.假设砍两次,那么完全可以第一次不砍,第二次砍,这样做是不会影响答案的.同时可以看出,树的生长速度对答案的影响比树初始的高度大. 不妨利用一下贪心的思想,将生长速度最快的树,放到最后一天用dev值最小的机器砍它. 因此我们将树按照生长速度降序排序,将机器按dev值升序排序. 然后从最后一天开始DP d[i][j][k]表示...原创 2018-10-26 19:37:23 · 174 阅读 · 0 评论