CodeForces 106C 【DP】
来源:互联网 发布:手机淘宝店标制作教程 编辑:程序博客网 时间:2024/06/03 05:53
题意:
n g dough m种商品?
每种有ai stuffing, 拿bi stuffing + ci dough -> di tugriks
rest c0 dough -> d0 tugriks
求最大的tugriks
思路:
dough是爸爸,
dp[i] 代表 在花费 i 情况下 前 j 个 商品的最大。
枚举在 k g dough 下的各种收入情况,取最大;
大致分成两个部分,用ai + bi 获得的钱,剩下的dough去干嘛得到。
#include <bits/stdc++.h>using namespace std;typedef long long LL;int dp[1010];int m,n,cc0,dd0;int a[15],b[15],c[15],d[15];int main(){ cin>>n>>m>>cc0>>dd0; for(int i=0;i<m;i++) cin>>a[i]>>b[i]>>c[i]>>d[i]; memset(dp,0,sizeof(dp)); for(int i=0;i<m;i++) { for(int k=n;k>=c[i];k--) { int p=0,q=0,num=0; for(;p<=a[i]&&q<=k;p+=b[i],q+=c[i],num++) { int come1=num*d[i]+dp[k-num*c[i]]; int come2=num*d[i]+(k-num*c[i])/cc0*dd0+dp[k-num*c[i]-(k-num*c[i])/cc0*cc0]; int come3=k/cc0*dd0+dp[k-k/cc0*cc0]; int come4=dp[k-k%cc0]; dp[k]=max(dp[k],come1); dp[k]=max(dp[k],come2); dp[k]=max(dp[k],come3); dp[k]=max(dp[k],come4); } } } printf("%d\n",dp[n]); return 0;}
0 0
- CodeForces 106C 【DP】
- CodeForces 467C DP
- Codeforces 156C (DP)
- codeforces 155C dp
- CodeForces 13C DP
- codeforces 431C DP
- CodeForces 687C【DP】
- Codeforces 706c dp
- CodeForces 13C【DP】
- CodeForces 761C 【DP】
- 【Codeforces 711 C】+ dp
- codeforces 754C dp
- Codeforces 840C [DP]
- codeforces 842C dp
- Codeforces 856C [DP]
- codeforces 255C DP yy
- codeforces 230C Shifts DP
- CodeForces 13C Sequence (DP)
- 1483 区间价值
- go语言-文件夹复制
- Spring MVC 配置和实例
- Java实现图片验证码
- 安装jenkins
- CodeForces 106C 【DP】
- 《ACM程序设计》书中题目
- 在Spring Boot中使用Spring-data-jpa实现分页查询
- hdu 2112 HDU Today(floyd 算法)
- Dubbox 编译
- android网络图片查看器
- IA32地址空间映射
- UNITY新手小游戏(二)
- Spring学习之基础知识