摘要:
设置一个状态数组表示到达这个重量的一张牌的序号,状态转移方程pos[i][j]=i {if(pos[i][j-v[i]]!=0)} 1 #include 2 #include 3 4 int main() 5 { 6 int tag,t,n,i,j,k,v[101]; 7 char pos[2][100001],pos1[101]; 8 scanf("%d",&t); 9 scanf("%d",&n);10 memset(pos[0],0,sizeof(char)*(t+1));11 j=0;12 for(i=1;i=0)25 ... 阅读全文
posted @ 2013-07-02 12:19
simplesslife
阅读(210)
评论(0)
推荐(0)
摘要:
每个状态代表可表示的种类数 状态转移方程 s[j]=s[j-c[i]]+s[j] 1 #include 2 #include 3 4 int main() 5 { 6 int v,n,i,j,k,c[26],s[10001]; 7 scanf("%d %d",&v,&n); 8 for(i=1;i=0) 19 if(s[j-c[i]]>0)20 s[j]+=s[j-c[i]];21 }22 }23 printf("%d\n",s[n]);24 while(true);25 ... 阅读全文
posted @ 2013-07-02 11:08
simplesslife
阅读(164)
评论(0)
推荐(0)
摘要:
1 #include 2 #include 3 4 struct thing 5 { 6 int w[3],v[3]; 7 int size; 8 }; 9 10 int main()11 {12 struct thing t[61];13 int i,tag,tag2,j,k,n,m,v,w,p;14 int s[2][32001];15 memset(s[0],0,sizeof(int)*32001);16 scanf("%d %d",&n,&m);17 tag=1;18 for(i=1;i=0&&s[(i-1)%... 阅读全文
posted @ 2013-07-02 10:38
simplesslife
阅读(216)
评论(0)
推荐(0)
摘要:
0/1背包问题,状态转移方程 if(j-w[i]>=0) s[i][j]=max(s[i-1][j],s[i-1][j-w[i]]+w[i]*v[i]) else s[i][j]=s[i-1][j]可能有超内存的问题,实际上只需要两个转移的状态就可以了。 1 #include 2 #include 3 4 5 int main() 6 { 7 int i,tag,j,n,m,w[26],v[26],s[2][30001]; 8 scanf("%d %d",&n,&m); 9 for(i=1;is[(i-1)%2][j])18 {19 ... 阅读全文
posted @ 2013-07-02 00:50
simplesslife
阅读(156)
评论(0)
推荐(0)
摘要:
根据草药的不可重复性而作为最外层循环,状态转移方程if(j>=w[i]) s[i][j]=max(s[i-1][j],s[i-1][j-w[i]+v[i]) else s[i][j]=s[i-1][j] 1 #include 2 #include 3 4 5 6 int main() 7 { 8 int t,m,i,j,w[101],v[101],s[101][1001]; 9 scanf("%d %d",&t,&m);10 for(i=1;i<=m;i++)11 {12 scanf("%d %d",&w[i],&am 阅读全文
posted @ 2013-07-02 00:13
simplesslife
阅读(175)
评论(0)
推荐(0)

浙公网安备 33010602011771号