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

推荐订阅源

F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
Last Week in AI
Last Week in AI
V
V2EX
博客园_首页
IT之家
IT之家
Jina AI
Jina AI
博客园 - 叶小钗
The Cloudflare Blog
T
Tailwind CSS Blog
腾讯CDC
B
Blog
D
Docker
L
LangChain Blog
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI

博客园 - 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));
  }
}