POJ 1276
2015-10-30 15:21
295 查看
#include<stdio.h> #include<string.h> const int N=100000+100; int dp ,a[20],b[20],t[200]; int main() { int n,m,i,j,cnt,k; while(scanf("%d%d",&n,&m)!=EOF) { cnt=0; for(i=1;i<=m;i++) { scanf("%d%d",&a[i],&b[i]); k=1; while(a[i]>k) { t[++cnt]=k*b[i]; a[i]-=k; k<<=1; } if(a[i]) t[++cnt]=a[i]*b[i]; } memset(dp,0,sizeof(dp)); for(i=1;i<=cnt;i++) { for(j=n;j>=t[i];j--) { if(dp[j]<dp[j-t[i]]+t[i]) dp[j]=dp[j-t[i]]+t[i]; } } printf("%d\n",dp ); } return 0; }
相关文章推荐
- Office 2013安装图广教程及问题解决
- php数组转换成json格式。
- php搜索文件程序分享
- java中的枚举介绍与简单应用
- linux 空间不够,磁盘挂载
- PullParserXMLDemo
- 使用 hexdump dump 文件内容
- 猴子都能懂的HTTP协议之请求行
- how can handle push notification when my app is not running
- iOS打包app发给测试人员测试
- iphone/ipad如何获取本机UDID
- Lucene之——打印分词核心代码
- unity shader 学习 (1)渲染管线
- php把错误日志输入到文件里。
- How Unreal Engine 4 Will Change The Next Games You Play
- HaProxy VS MaxScale VS OneProxy压测对比(虚拟机环境)
- Maximum sum
- 正则表达式30分钟入门教程
- Git常用命令速查08 - 撤销
- onCreate、onStart、onResume、onPause、onStop、onDestory(转)