博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3732
阅读量:5325 次
发布时间:2019-06-14

本文共 781 字,大约阅读时间需要 2 分钟。

#include<stdio.h>

#include<string.h>
int n,m,dp[10001];
int max(int a,int b) {
 return a>b?a:b;
}
void yi(int val,int co) {
 int i;
 for(i=m;i>=co;i--)
  dp[i]=max(dp[i],dp[i-co]+val);
}
void duo(int val,int co) {
 int i;
 for(i=co;i<=m;i++)
       dp[i]=max(dp[i],dp[i-co]+val);
}
void seach(int val,int co,int num) {
 if(co*num>m)
  duo(val,co);
 else {
  int k=1;
  while(k<num) {
   yi(val*k,co*k);
   num-=k;
   k*=2;
  }
  yi(num*val,co*num);
 }
}
int main() {
 int p[11][11],i,j,k,t;
 char s[101];
 while(scanf("%d%d",&n,&m)!=EOF)  {
  memset(p,0,sizeof(p));
  int a,b;
  while(n--) {
   scanf("%s%d%d",s,&a,&b);
   p[a][b]++;
  }
  memset(dp,0,sizeof(dp));
   for(i=0;i<=10;i++)
    for(j=0;j<=10;j++)
     if(p[i][j])
      seach(i,j,p[i][j]);
     printf("%d\n",dp[m]);
 }
 return 0;
}

另附详解地址:

转载于:https://www.cnblogs.com/thefirstfeeling/p/4411002.html

你可能感兴趣的文章
Castle ActiveRecord学习实践
查看>>
在Spring MVC中使用注解的方式校验RequestParams
查看>>
[转]VC++界面编程总结(一)
查看>>
[转]Visual C++编程命名规则
查看>>
C++小项目 学生成绩管理系统
查看>>
scala学习笔记2:面向对象编程部分基础
查看>>
王爽汇编语言第二版学习笔记之实验11
查看>>
java常用设计模式十:模板模式
查看>>
SQL SERVER--单回话下的死锁
查看>>
MTCNN源码阅读之训练测试过程,其和faster -rcnn 等目标识别的区别在哪里?
查看>>
Easyui 表格底部加合计
查看>>
ashx中使用HttpContext.Current.Session ,出现未将对象引用设置到实例
查看>>
Programming 2D Games 读书笔记(第三章)
查看>>
【JAVA】从java线程来看java内存模型
查看>>
display:inline、block、inline-block的区别
查看>>
第十三周学习总结
查看>>
Fedora安装vim失败解决方法
查看>>
图片有浅到深的渐变
查看>>
POJ3013-Big Christmas Tree-最短路
查看>>
大众点评的谋局、对局与破局 大众点评为什么要卖?
查看>>