动态规划DP
文章平均质量分 67
swust_wbh
这个作者很懒,什么都没留下…
展开
-
hdu 1226(背包问题解法)
对于每一位数,有m种选法,dp[i][j]代表到达第i位时,数对n取余为j时的属性,枚举选择的数时候从小到大保证答案是最小解。 要特别注意存在0这个数的情况,特别容易出错。 #include #include #include #include #include #include using namespace std; struct Dp { int flag; int nu原创 2013-05-08 23:55:03 · 462 阅读 · 0 评论 -
hdu 4552(KMP+DP)
#include #include #include using namespace std; #define N 100005 char str[N]; int nex[N]; int dp[N]; int n; void getNext(char *p) { int j,k; nex[0]=-1; j=0; k=-1; int len=strlen(p);原创 2013-05-26 21:50:42 · 460 阅读 · 0 评论 -
HDU 3564(线段树+最长上升子序列)
这题的难点在于要倒着去遍历这个序列,求出最终的序列,然后就是求最长上升子序列了。 要求最终的序列,那么维护一颗线段树,节点记录空位的数量cnt。 线段树功能 query:单点更新 #include #include #include using namespace std; #define lc l,m,index<<1 #define rc m+1,r,index<<1|1 #d原创 2013-05-13 21:25:17 · 755 阅读 · 0 评论 -
hdu 3555(数位dp)
#include #include #include #include #include #include #include using namespace std; #define N 25 #define ll __int64 ll dp[N][3]; ll n; //dp[i][0] 含49的 //dp[i][1] 不含49且最高位是9的 //dp[i][2] 不含49且最高位不是9的原创 2014-04-22 11:15:11 · 407 阅读 · 0 评论 -
HDU 4507(数位dp)
#include #include #include #include #include #include using namespace std; #define MOD 1000000007 #define ll __int64 struct node { ll cnt,sum,powsum;//个数,和,平方的和 }dp[25][7][7]; ll digit[25]; ll p[25]原创 2014-04-28 19:11:21 · 562 阅读 · 0 评论