【动态规划】[luoguP1417]烹调方案
来源:互联网 发布:java中什么叫继承 编辑:程序博客网 时间:2024/04/27 20:15
题目
我们要先推一个贪心
考虑相邻的两个物品xy 已经耗费p的时间
先做x
先做y
所以①>②的条件是
所以sort一下 然后就是01背包
关键这个题必须都得用long long!
代码如下
#include<iostream>#include<cstdio>#include<cctype>#include<algorithm> using namespace std; #define in = read(); typedef long long ll; typedef unsigned int ui; const ll size = 100000 + 1000; struct point{ ll a , b , c;}data[size]; ll n , t; ll ans; ll f[size];inline ll read(){ ll num = 0 , f = 1; char ch = getchar(); while(!isdigit(ch)){ if(ch == '-') f = -1; ch = getchar(); } while(isdigit(ch)){ num = num*10 + ch - '0'; ch = getchar(); } return num*f;}inline bool cmp(point x , point y){ return x.c*y.b < y.c*x.b;}int main(){ t in; n in; for(register ll i=1;i<=n;i++) data[i].a in; for(register ll i=1;i<=n;i++) data[i].b in; for(register ll i=1;i<=n;i++) data[i].c in; sort(data + 1 , data + n + 1 , cmp); for(register ll i=1;i<=n;i++) for(register ll j=t;j>=data[i].c;j--) f[j] = max(f[j] , f[j - data[i].c] + data[i].a - data[i].b*j); for(register ll i=1;i<=t;i++) ans = max(ans , f[i]); printf("%d" , ans);}//COYG
阅读全文
0 0
- 【动态规划】[luoguP1417]烹调方案
- 烹调方案
- 洛谷1417 烹调方案
- P1417 烹调方案
- 洛谷 P1417 烹调方案
- 洛谷 P1417 烹调方案
- 洛谷 P1417 烹调方案
- 洛谷 P1417 烹调方案
- 洛谷 P1417 烹调方案
- P1417 烹调方案
- 洛谷1417 烹调方案 dp 贪心
- 明明的预算方案-动态规划
- 【动态规划】钢条切割的最佳方案
- 金明的预算方案【动态规划】
- 行走方案问题(动态规划实现)
- 洛谷 1417——烹调方案【动规】
- 6_动态规划_金明的预算方案
- 动态规划详细解析---及各类问题解决方案
- 草根学Python(十三)线程和进程
- 草根学Python(十三)线程和进程
- Linux下CodeBlocks配置gtk3
- html节点认识
- 【数论】[luoguP1895]数字序列
- 【动态规划】[luoguP1417]烹调方案
- 算法的时间复杂度
- [hdu-2896]病毒侵袭 题解
- 解决比赛中文件名容易写错的问题
- weiwei爬虫4.2--快速爬取网页
- C语言位运算
- YUV420转YUV444
- 【数论】[HNOI2008]越狱
- [hdu-3065]病毒侵袭持续中 题解