luogu2577/bzoj1899 午餐 (贪心+dp)
首先,应该尽量让吃饭慢的排在前面,先按这个排个序
然后再来决定每个人到底去哪边
设f[i][j]是做到了第i个人,然后1号窗口目前的总排队时间是j,目前的最大总时间
有这个i和j的话,再预处理出前i个人的排队总时间sum[i],可以知道在2号窗口的排队时间是sum[i]-j
拿着两个去更新答案就行了
1 #include<bits/stdc++.h> 2 #define pa pair<int,int> 3 #define CLR(a,x) memset(a,x,sizeof(a)) 4 using namespace std; 5 typedef long long ll; 6 const int maxn=210; 7 8 inline ll rd(){ 9 ll x=0;char c=getchar();int neg=1; 10 while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();} 11 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); 12 return x*neg; 13 } 14 15 int f[maxn][maxn*maxn],st[maxn]; 16 int N; 17 struct Node{ 18 int e,q; 19 }p[maxn]; 20 21 inline bool cmp(Node a,Node b){return a.e>b.e;} 22 23 int main(){ 24 //freopen("","r",stdin); 25 int i,j,k; 26 N=rd(); 27 for(i=1;i<=N;i++){ 28 p[i].q=rd(),p[i].e=rd(); 29 }sort(p+1,p+N+1,cmp); 30 for(i=1;i<=N;i++) 31 st[i]=st[i-1]+p[i].q; 32 33 CLR(f,127);f[0][0]=0; 34 for(i=1;i<=N;i++){ 35 for(j=0;j<=N*200;j++){ 36 if(f[i-1][j]>=1e8) continue; 37 f[i][j+p[i].q]=min(f[i][j+p[i].q],max(f[i-1][j],j+p[i].q+p[i].e)); 38 f[i][j]=min(f[i][j],max(f[i-1][j],st[i]-j+p[i].e)); 39 } 40 } 41 int ans=1e9; 42 for(j=0;j<=N*200;j++) 43 ans=min(ans,f[N][j]); 44 printf("%d\n",ans); 45 return 0; 46 }
转载于:https://www.cnblogs.com/Ressed/p/9833565.html
luogu2577/bzoj1899 午餐 (贪心+dp)相关推荐
- 【BZOJ1899】[Zjoi2004]Lunch 午餐 贪心+DP
[BZOJ1899][Zjoi2004]Lunch 午餐 Description 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时 ...
- BZOJ1899 [Zjoi2004]Lunch 午餐 贪心+DP
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1899 题解 如果只有一个窗口,那么可以这样考虑:因为最后一个人打完饭的时间是固定的,那么不如就 ...
- [ZJOI2005]午餐 贪心+dp
这个题如果直接dp的话要考虑 先从题目类型入手,这种规划性问题 应该是个dp 1开始的时间.1结束的时间.2开始的时间.2结束的时间 这是200^6级别的状态数,且没有任何状态优化的余地 所以就要考虑 ...
- URAL 1203 Scientific Conference(贪心 || DP)
Scientific Conference 之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校,补多校的题目,刷一下一直薄弱的DP.多校如果有计算几何一定要干掉-.- 题意:给 ...
- Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...
- 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp
题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...
- [ZJOI2005]午餐(贪心+dp)
首先若只有一个窗口,利用贪心,按吃饭时间从大到小排序即可 正确性证明: 定义 eat[i] = 第i个人的吃饭时间,time[i] = 第i个人的打饭时间 延长时间T[i]=max(eat[i]- ∑ ...
- HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
开始还觉得是贪心呢... 给你三类积木叫你叠楼房,给你的每个积木包括四个值:长 宽(可以互换) 高 类型d d=0:你只能把它放在地上或者放在 长 宽 小于等于 自己的积木上面 d=1:你只能把 ...
- 【BZOJ4069】【APIO2015】巴厘岛的雕塑 [贪心][DP]
巴厘岛的雕塑 Time Limit: 10 Sec Memory Limit: 64 MB [Submit][Status][Discuss] Description 印尼巴厘岛的公路上有许多的雕塑 ...
最新文章
- 如何调用形参数组_函数的参数
- linux java top_Linux top和负载的解释(转载)
- 前端学习(2730):重读vue电商网站40之使用vue-table-with-tree-grid
- C#关键字的个人理解与注释
- Linux Shell脚本_历史命令显示操作时间
- (计算机组成原理)第四章指令系统-第二节1:指令寻址
- 【2017-12-12】Winform----Datagirdview使用
- 【2017百度之星程序设计大赛 - 资格赛】	度度熊与邪恶大魔王
- 游戏筑基开发之函数指针及main函数利用指针传参(C语言)
- 克拉克变换(Clarke Transformation)
- element表格序号排序
- 改善民生 住有所居(加快经济发展方式转变)
- android hud软件,手机HUD靠谱软件选哪些?_手机_手机生活应用-中关村在线
- 计算机毕业设计Node.js+Vue交通违章举报平台(程序+源码+LW+部署)
- 1分钟查找是退回件的快递单号
- 子网掩码取反怎么取_关于子网掩码的问题
- python+nodejs+php+springboot+vue 社区小区报修 -社区信息管理
- 2019 DENSE-HAZE: A BENCHMARK FOR IMAGE DEHAZING WITH DENSE-HAZE AND HAZE-FREE IMAGES
- uni-app 上拉加载函数 onReachBottom 不触发
- 1553B总线可靠性量化指标的理解
热门文章
- 【PAT - 甲级1010】Radix (25分)(二分,进制转化)
- 【洛谷 - P1772 】[ZJOI2006]物流运输(dp)
- 【HDU - 1026 】Ignatius and the Princess I (bfs + 记录路径)
- 使用OpenCV库快速求解相机内参
- npm安装与卸载和cordova及ionic项目打包调试等相关命令总结归纳
- python bind sock_python 在bind端口之后创建的socket如果不关闭的话会被回收吗?
- win10一按右键就闪屏_升级Win10正式版后屏幕一直闪烁正确的解决办法
- 建房子 最安全图纸_妄想山海初期该怎么办?砍树狩猎建房子,还能拆别人的房子...
- html 表格文字颜色 css,CSS 表格-JavaScript中文网-JavaScript教程资源分享门户
- Java迭代器修改链表_Java恼人的迭代器不会返回链表中的元素