摘要:
#include <iostream>#include <cstdio>#include <string.h>using namespace std;int main(){ int n,i,m,j,s[1500],dp[1500],flag,maxi; while(scanf("%d",&n),n) { maxi=-1; for (i=1;i<=n;++i) { scanf("%d",&s[i]); if (s[i]>maxi) { fla... 阅读全文
摘要:
开始时觉得开二维dp[i]p[j]表示第i年j投资所得到的最大价值,后来觉得每一年都可以得到一个总投资数,那么进行多次完全背包,每次更新的是其sum总值,无奈数组开小了,WA了好多次。。。。。不过这个题目还是简单的#include <iostream>#include <cstdio>#include <string.h>using namespace std;int dp[100110];//竟然是数组太小了,WA了好多次struct node{ int cost; int value;}s[1500];int main(){ int t,i,d,sum, 阅读全文
摘要:
该题在选择物品的时候,必须得选择盒子,因此为有依赖的背包,注意与树形dp的区别#include <iostream>#include <cstdio>#include <string.h>using namespace std; int dp[55][100005];int main(){ int n,v,i,j,k,pi,t,c,w; while(scanf("%d%d",&n,&v)!=EOF) { memset(dp,0,sizeof(dp)); for (i=1;i<=n;++i) { scanf(" 阅读全文