随笔分类 - ACM之路---背包问题
摘要:分析:这是一个二维完全背包,首先要找到哪个属性是wight,哪个是value。。根据题意,杀怪数和忍耐度是wight,属于背包。经验值是价值。。然后套用完全背包,只不过这个是二维背包,要再加入一个循环。。这个题要求的是剩余忍耐度。。所以第一个循环可以设置成忍耐度。。只要所求的经验值大于规定,就可跳出循环,简化代码。。#includeusing namespace std;int dp[110][110];int Max(int a,int b){ return a>b?a:b;}int main(){ int i, j, k, n, m, l, s, a[105], b[105],...
阅读全文
摘要:裸地01背包。。。给出质量限制求最大可获得的价值。。直接贴代码:#includeusing namespace std;int main(){ int n, m; cin>>n>>m; int w[3500]={0}, d[3500]={0}; int f[26000]={0},i,j; for(i=0; i>w[i]>>d[i]; } for(i=0; i=w[i]; j--) { if(f[j-w[i]]+d[i]>f[j]) f[j]=f[j-w[i...
阅读全文
摘要:分析:可以转化为01背包。。解决这个问题需要两个步骤。。(1)留下5元钱去买最贵的菜。(要注意排除 m #includeusing namespace std;int max(int a, int b){ return a>b ? a : b;}int main(){ int n; while(cin>>n && n) { int i, j, m, c[1011], ma=0, f[1011], k; for(i=1; i>c[i]; if(ma>m; if(m=0; j--) ...
阅读全文

浙公网安备 33010602011771号