
DP
文章平均质量分 52
Dale_zero
从零开始吧!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ZOJ 4027 2018浙江省赛D Sequence Swapping(DP)
题目链接:zoj 4027一直在准备考试以及麻痹自己的学习,所以完美的避开了整个四月,唉输入s之后给将左右括号分别存放在c,d两个数组中,并给每个左右括号编号,dp【i】【j】代表将第i个左括号放到第j个右括号之后得到的分数(此时序号比 i 大的所有左括号都已经放置完毕,并且dp【i】【j】包含了这些值)maxx=max(dp【k】);(k>=j)dp[i][j]=(d[j]-d[i])*c...原创 2018-05-01 18:26:10 · 770 阅读 · 0 评论 -
2018北京ICPC H Approximate Matching AC自动机DP
题目链接:http://hihocoder.com/problemset/problem/1877 因为近似匹配最多只能有1个字符不匹配,所以向ac自动机里加入n+1个模式串(还有一个原串)。然后用AC自动机DP,insert之后构建fail边。 如果要让dpij代表前i个字符到达第j个节点并且至少近似匹配一次的话,转移起来会非常麻烦,所以就反过来统计前i个字符到达第j个节点没有近似匹配的字符...原创 2018-11-14 22:19:25 · 548 阅读 · 0 评论 -
hdu 2825 Wireless Password AC自动机DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2825 发现只奥树上节点较少并且有最优子结构的问题就可以用ac自动机dp求解。 新发现了一点: buildfail之后,之前等于-1的next值会赋值为与根节点相同分支的next值。 这是一个ac自动机上的状压dp,dp【i】【j】【k】代表用i个字符到达了节点j,并且当前覆盖了字符串集合k时有...原创 2018-10-10 19:41:56 · 235 阅读 · 0 评论 -
hdu 2457 DNA repair AC自动机+DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2457 这道题用不到query函数,直接在带fail的字典树上面进行dp。 明确两点: ①:所有串insert之后builfail会将所有next=-1的指针指向根节点 ②:正常查询时若查到一个有标记值的点,需要不断向上遍历fail节点,因为fail是其最长后缀,其出现则其后缀也一定出现。 但...原创 2018-10-10 00:31:52 · 231 阅读 · 0 评论 -
hdu 5470 Typewriter 后缀自动机+单调队列优化DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5470 这道题是用的是后缀自动机 + 单调队列优化DP。 正常考虑DP的话,暴力DP需要O(n^2)的复杂度,不可行。这道题用单调队列优化DP可以到O(n)的复杂度。 用dp【i】表示写出前i个字符需要的cost。则求dp【i】的时候有两种转移情况 ①:dp【i-1】+cost【s【i】】。 ...原创 2018-10-06 15:17:10 · 419 阅读 · 0 评论 -
hdu 2296 Ring AC自动机DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2296 出了很奇怪的re问题,可能是用memset清除string类型的数组会RE? 最后改了一个保证输出字典序最小就过了??? 初始化需要将dp数组置为-1,置dp00=0;-1表示不可达状态 细节比较多的AC自动机DP #include<bits/stdc++.h> usi...原创 2018-10-12 22:48:38 · 278 阅读 · 0 评论 -
NAIPC 2016 F. Mountain Scenes DP
题目链接:http://codeforces.com/gym/101002 dp[i][j]代表到第i列为止用了j米长的绸带,dp过程有点迷。。感觉复杂度已经到了1e8,但是还可以过。其实可以处理成前缀和做,那样复杂度会优化到1e6,但是没调出来 #include<bits/stdc++.h> #define mod 1000000007 using namespace s...原创 2018-10-02 20:47:26 · 396 阅读 · 0 评论 -
hdu 6447YJJ's Salesman 离散化+树状数组+DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447 因为图中点的坐标值过大,达到1e9.然而只有1e5个点。所以先将其离散化。并按照<x.y>二元组排序。每次对于同一行的点连续处理两次。 第一次:先考虑由上一行转移而来的情况:树状数组找到左上角的最大值+v、以及上方值的最大值。 第二次:考虑由同行的点转移来的情况。树状数组查询区...原创 2018-08-25 21:24:58 · 691 阅读 · 0 评论 -
计蒜客 2018南京赛区网络赛 The writing on the wall 暴力dp
题目链接:https://nanti.jisuanke.com/t/30991 Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 3030 Yuan). However, his owner CXY thinks that take-away food...原创 2018-09-01 17:04:47 · 678 阅读 · 0 评论 -
hdu 6415 Rikka with Nash Equilibrium DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6415 dp i,j,k代表 当前已经放置了n-i+1~n个数,剩下的数字不能在j行,k列中放置 ③: 1.dpi+1,j,k+1; 2.dpi+1,j+1,k; 3.dpi+1,j,k; 倒着DP时,最后输出DP【n*m】【n】【m】 #include<bits/stdc++.h> ...原创 2018-08-21 18:23:46 · 210 阅读 · 0 评论 -
codeforce 987c
题目链接:点击打开链接 n^2的动态规划,每次查询在i之前的2值,更新i的3值,在i之前的1值,更新i的2值。初始化时将所有元素的1值都置为c【i】。 #include<iostream> #include<cstdio> #include<vector> #include<set> #include<map> #include&l...原创 2018-06-06 00:26:38 · 548 阅读 · 2 评论 -
codeforce 985E dp+BIT
题目链接:点击打开链接思维很重要,首先要把这个问题抽象成模型。即能否用若干个盒子装下n个物品,每个盒子里的物品价值范围为ai,aj和ai到aj区间内的所有物品。用dp【i】表示从i到n个物品能否按规则装下,是为1,否为0;先将从小到大数组排序考量一个dp【i】时只需考量dp【i+k+1】,dp【i+k+2】。。。dp【x】(a【x】为upper_bound(a【i】+d+1))其中若有一个dp值为...原创 2018-06-05 13:50:05 · 293 阅读 · 0 评论 -
codeforce 982C
题目链接:点击打开链接如果节点数是奇数,那么直接输出-1以任意一点为根节点,进行dfs,如果第i个节点的子树节点(包括本身)数为偶数,ans++;最后答案为ans-1;#include<iostream> #include<cstdio> #include<vector> #include<set> #include<map> #incl...原创 2018-06-05 15:55:54 · 318 阅读 · 0 评论 -
Codeforce 981D 贪心+dp
题目链接:点击打开链接本题目能简单的以dpij为前i段到第j个的最大值来dp,不满足最优子结构性质。因为最大的数有50位,可以进行60轮次动态规划,看最后的解能否达到这一轮的ans,如果不能达到,则去掉本轮新增的1位。因为位数是在上一轮的基础上增加的,所以不会出现都能达到而方案不同的漏洞#include<iostream> #include<cstdio> #include...原创 2018-06-04 21:36:05 · 349 阅读 · 0 评论 -
Greater New York Region 2015 G compositions dp
题目链接:https://nanti.jisuanke.com/t/33656 dp[i][j]代表用j个数字分解数字i,再枚举从1到i的每个数字进行转移 #include<bits/stdc++.h> using namespace std; long long dp[40][40][40],sum[40][40],ans[40]; int main() { int...原创 2018-11-19 21:21:11 · 254 阅读 · 0 评论