hihocoder #1091
来源:互联网 发布:网络配音培训班 编辑:程序博客网 时间:2024/06/05 16:01
虽然一看就是dp 然并卵还是看了提示,学习了背包的几种变化
记录一下
#include<iostream> #include <string> #include<vector> #include<algorithm> #include<set> #include<fstream>#include<cmath> using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i)) #define pii pair<int,int> #define mp make_pair #define FOR(i,b,e) for(int i=b;i<=e;i++) #define ms(a) memset(a,0,sizeof(a)) const int maxnum =155; const int inf = 20005;int n,m;int dp[35][inf];int cost[35][maxnum];int csum[35][maxnum];int dam[35][maxnum];int main() { //ifstream fin("G:/1.txt");scanf("%d%d",&n,&m);int A,B;ms(csum);ms(cost);ms(dam); ms(dp);FOR(i,1,n){scanf("%d%d",&A,&B);if(B>m)continue;cost[i][1]=csum[i][1]=B;dam[i][1]=A;for(int j=2;;j++){cost[i][j]=cost[i][j-1]*1.07;if(csum[i][j-1]+cost[i][j]>m){csum[i][0]=j-1;break;}csum[i][j]=csum[i][j-1]+cost[i][j];dam[i][j]=dam[i][j-1]+A;}}FOR(i,1,n){FOR(j,0,m){dp[i][j]=max(dp[i-1][j],dp[i][j]);FOR(k,1,csum[i][0]){if(j<csum[i][k])continue;dp[i][j]=max(dp[i][j],dp[i-1][j-csum[i][k]]+dam[i][k]);}}}int ans=0;FOR(i,0,m)ans = max(ans,dp[n][i]);cout<<ans<<endl;return 0;}
0 0
- hihocoder #1091
- hihocoder:
- hihoCoder
- Hihocoder
- hihocoder
- hihocoder
- hihocoder
- hihocoder
- hihocoder
- HihoCoder
- HihoCoder
- HihoCoder
- HihoCoder
- HihoCoder
- HihoCoder
- hihoCoder
- HihoCoder
- HihoCoder
- Linux下gedit中文显示乱码
- 黑马程序员—集合框架共性方法与迭代器
- 第二阶段 软件测试管理概述
- 汉明距离
- leetcode Binary Tree Inorder Traversal
- hihocoder #1091
- 敏捷开发
- 图的遍历,非递归版本,深度优先遍历
- Myeclipse中设置maven以及maven项目的导入
- Web分页技术的思想汇集
- LIntCode-二进制求和
- php开发日记之数据库连接
- 今天面试了两个程序猿(二)
- POJ - 2251 Dungeon Master(15.10.10 搜索专题)bfs