惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
J
Java Code Geeks
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
博客园 - 【当耐特】
Y
Y Combinator Blog
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 司徒正美

博客园 - saintqdd

hdu 1102 pku 2421 解题报告 pku 2777 Count Color 解体报告 石子合并问题 nkoj1139和乘积最大那题一样. A Tour in Loquat Orchard (FZU 2007 ICPC Qualification Round I tzw) 最大黑区域 滑雪 一道经典题,humble number 今天碰到了一个很诡异的题,Alphacode (zoj 2202) 实训以来,到这里的次数少了! 郁闷,乘积最大那题WA原来只是因为我用了pow函数引起的! Smith Number POJ强烈推荐50题 JOJ 2391 words POJ 1014 三十分钟掌握STL STL学习小记 POJ1006,中国剩余定理 POJ1003,简单题
这两天经常碰到dp题,就写了一个0-1背包
saintqdd · 2007-08-29 · via 博客园 - saintqdd

输入第一行N,C,N物品的数量,C背包的大小
下一行输入背包的价值
下一行输入背包的体积

程序如下:
#include<iostream>
typedef struct{
  int v;
  int t;
}mar;
mar arr[1000];
int i;
int N,C;
int dp(int C,int i){
   if(i<0)
      return 0;
   int x,y;
   y=dp(C,i-1);
   if(C>=arr[i].t){
      x=arr[i].v+dp(C-arr[i].t,i-1);
      return x>y?x:y;
   }
   else
      return y;
}
int main(){
  while(scanf("%d%d",&N,&C)!=-1){
    i=0;
    while(i<N){
      scanf("%d",&arr[i++].v);
    }
    i=0;
    while(i<N){
      scanf("%d",&arr[i++].t);
    }
    printf("%d"n",dp(C,N-1));
  }
}