dp
knownothing
这个作者很懒,什么都没留下…
展开
-
hdu 4504 威威猫系列故事——篮球梦 dp
自己的代码,有点丑,嘿嘿。。#include #include #include #include #include #include #include using namespace std;#define LL __int64LL f[33][333];double pows(double a,LL b){ double s=1; while(b)原创 2013-08-18 19:12:45 · 994 阅读 · 0 评论 -
hdu 1024 Max Sum Plus Plus dp
代码:#include #include #include #include #include #include #include using namespace std;const int maxn=1e6+10;const int INF=1e8;int dp[maxn];int a[maxn];int c[maxn];int main(){ int转载 2014-07-18 16:19:40 · 742 阅读 · 0 评论 -
hdu 1028 Ignatius and the Princess III 母函数/dp
代码:母函数:#include #include #include #include #include #include #include #include using namespace std;//母函数/*对于1+x+x^2+x^3+...中,kx^n表示由全部是1组合而成n的方法有k种。对于这道题的n,就是g(x)=(1+x+x^2+x^3+...)*(1+x原创 2014-07-23 09:43:24 · 1189 阅读 · 0 评论 -
hdu 1025 Constructing Roads In JGShining's Kingdom 最长上升子序列(nlogn)
#include #include #include #include #include #include #include #include using namespace std;const int maxn=5e5+10;struct node{ int x,y;}e[maxn];int c[maxn],dp[maxn],t;int cmp(node a,原创 2014-07-22 09:11:46 · 758 阅读 · 0 评论 -
hdu 1052 Tian Ji -- The Horse Racing dp/贪心
代码:原创 2014-07-25 18:57:12 · 915 阅读 · 0 评论 -
hdu 1074 Doing Homework dp+状态压缩
代码:#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=20;struct node{ int num,pre,c;}dp[1<<maxn];int vis[1<<maxn];原创 2014-07-29 20:19:37 · 671 阅读 · 0 评论 -
hdu 1080 Human Gene Functions dp
代码:#include #include #include #include #include #include #include #include #include #include using namespace std;const int maxn=110;int dp[maxn][maxn];int e[5][5]={ {5,-1,-原创 2014-07-30 14:32:53 · 678 阅读 · 0 评论 -
hdu 2476 String painter dp
题意:给定两个等长字符串原创 2014-07-13 11:36:20 · 668 阅读 · 0 评论 -
hdu 1081 To The Max 最大子矩阵和(dp)
题意:代码:#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=110;const int INF=1e8;int e[maxn][maxn];int sum[原创 2014-07-30 15:20:30 · 938 阅读 · 0 评论 -
hdu 4909 String dp+哈希
代码:转载 2014-08-05 20:35:40 · 649 阅读 · 0 评论 -
hdu 4960 Another OCD Patient dp(记忆化搜索)
代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64const int maxn=5e3+10;struct node{ int原创 2014-08-20 12:34:30 · 1030 阅读 · 0 评论 -
hdu 3336 Count the string dp+KMP(失配函数)
题意:代码:#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=2e5+10;const int mod=1e4+7;char a[maxn];int原创 2014-08-09 15:17:21 · 574 阅读 · 0 评论 -
hdu 1011 Starship Troopers 树形dp
题意:有一颗以1为根jiedian原创 2014-08-23 18:25:34 · 661 阅读 · 0 评论 -
hdu 1561 The more, The Better 树形dp
题意:有n座城堡,原创 2014-08-23 19:35:42 · 709 阅读 · 0 评论 -
hdu 1023 Train Problem II dp/卡特兰数
题意:给定一个整数(1<=n<=100),表示原创 2014-07-18 14:53:52 · 788 阅读 · 0 评论 -
poj 2533 Longest Ordered Subsequence 最长上升子序列,nlogn复杂度
代码:原创 2014-07-19 13:20:55 · 706 阅读 · 0 评论 -
hdu 2476 String painter 动态规划
题意:给定两个字符串a和b,求最少需要对a进行多少次操作,才能将a变成b。每次操作时将a中任意一段变成任意一个字母所组成的段。题解:动态规划题。dp[i][j]表示a中i到j段变成b需要的最少次数。递推公式:dp[i][j]=min(dp[i][k]+dp[k+1][j])(i注意:由于如果一段子串两端相等,会成端更新,从而改变中间子串的字符,所以处理时可假定所以a中单个字符都需要一次变化原创 2013-10-07 13:10:42 · 4080 阅读 · 3 评论 -
hdu 3555 Bomb 数位dp
#include #include #include #include #include using namespace std;#define LL __int64LL dp[22][3];int main(){ memset(dp,0,sizeof(dp)); dp[0][0]=1; for(LL i=1;i<=20;i++) {转载 2013-08-20 10:39:26 · 582 阅读 · 0 评论 -
POJ 2411 Mondriaan's Dream dp(矩形填充)
#include #include #include #include #include #include using namespace std;#define LL long longconst int maxn=(1<<11)*11;//一个状态可以推出多个状态const int maxc=(1<<11)+10;int pre[maxn],now[maxn];LL dp转载 2013-08-23 12:53:06 · 840 阅读 · 0 评论 -
poj 3420 dp+矩阵(矩形填充)
#include #include #include #include #include #include using namespace std;#define LL long longconst int maxn=(1<<4)*4;//一个状态可以推出多个状态int pre[maxn],now[maxn];int m,n,t,mod;struct matrix{原创 2013-08-23 13:14:31 · 1322 阅读 · 0 评论 -
poj 2663 Tri Tiling dp(矩形填充)
#include #include #include #include #include #include using namespace std;#define LL long longconst int maxn=(1<<3)*3;//一个状态可以推出多个状态const int maxc=(1<<3)+2;int pre[maxn],now[maxn];LL dp[33]原创 2013-08-23 13:01:22 · 683 阅读 · 0 评论 -
hdu 4681 String/杭电多校第八场1006 最长公共子序列长
#include #include #include #include using namespace std;#define maxn 1111char a[maxn],b[maxn],c[maxn];int dp1[maxn][maxn],dp2[maxn][maxn],n,m,len;struct node//记录在字符串a,b中,c串的首尾位置{ int x,y;转载 2013-08-15 21:44:16 · 972 阅读 · 0 评论 -
hdu 4502 吉哥系列故事——临时工计划 dp
#include #include #include #include #include #include #include using namespace std;int f[111];int e[111][111];//101不够????int main(){ int T; cin>>T; while(T--) { int原创 2013-08-18 16:22:23 · 844 阅读 · 0 评论 -
hdu 4722 Good Numbers 数位dp(2013 ACM/ICPC Asia Regional Online —— Warmup2 1007)
#include #include #include #include #include using namespace std;#define LL __int64LL c[20][11];LL find(int a[],int n)//求0~a的符合条件的数{ int i,j,k; memset(c,0,sizeof(c)); int x=0;原创 2013-09-11 15:14:44 · 1551 阅读 · 6 评论 -
hdu 1176 免费馅饼 dp
#include #include #include #include #include using namespace std;const int maxn=1e5+10;const int INF=1e8;int dp[maxn][11];int n;struct node{ int a,b;}e[maxn];int cmp(node x,node y){原创 2013-09-13 14:36:25 · 663 阅读 · 0 评论 -
hdu 1799 循环多少次? 动态规划
#include #include #include #include #include using namespace std;#define LL __int64const int maxn=2002;const int mod=1007;int dp[maxn][maxn];void init(){ memset(dp,0,sizeof(dp)); in原创 2013-09-13 23:58:20 · 1195 阅读 · 0 评论 -
hdu 4734 F(x) 数位dp (2013 ACM/ICPC Asia Regional Chengdu Online 1007)
#include #include #include #include #include using namespace std;int f[10][4700];int a,b;int c[12],d[12];int main(){ int i,j,k; d[0]=1; for(i=1;i<=10;i++) d[i]=d[i-1]<<1;原创 2013-09-14 21:19:42 · 1830 阅读 · 1 评论 -
hdu 3519 Lucky Coins Sequence dp+矩阵连乘优化
#include #include #include #include #include #include using namespace std;#define LL __int64const int mod=1e4+7;const int maxn=4;struct matrix{ int f[maxn][maxn];};matrix mul(matrix a,原创 2013-09-18 16:25:27 · 863 阅读 · 0 评论 -
hdu 4455 Substrings 动态规划
题意:给定一个序列ai,个数为n。再给出一系列w;对于每个w,求序列中,所有长度为w的连续子串中的权值和,子串权值为子串中不同数的个数题解:一道动态规划体。。一开始i想成了树状数组。dp[i表示w=i时所求的答案。dp[1]=n,这个很容易知道,dp[2]中的子串就是删去dp[1]中最后一个子串,再每个子串加上其之后的那个数,以此类推。。要删去的最后一个子串的权值很好求,for以遍原创 2013-10-04 16:57:52 · 1588 阅读 · 0 评论 -
zoj 2625 Rearrange Them 动态规划
题意:给定一个序列长n,序列由1~n组成,问有多少种组合方式使得序列中的任意一个数i的前面数不是i-1?题解:动态规划题,只要推出公式,其他一切OK。令F[i]表示长度为i的符合序列个数。则对于已知的f[0]~f[i-1],我们来推f[i]。因为f[i-1]表示长度i-1符合序列个数。则加入新的元素i,那么i处列i-1后面外,其余全部可以放,共i-1个位置。除了这种从符合条件推符合条件外,还可原创 2013-10-06 15:26:35 · 964 阅读 · 0 评论 -
poj 2244 Eeny Meeny Moo 约瑟夫环
代码:#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=155;int vis[maxn],f[maxn],ans[maxn];void init(){ memset(vis,0原创 2014-07-19 20:38:36 · 939 阅读 · 1 评论