[ZJOI2005]午餐 贪心+dp
这个题如果直接dp的话要考虑
先从题目类型入手,这种规划性问题 应该是个dp
1开始的时间、1结束的时间、2开始的时间、2结束的时间
这是200^6级别的状态数,且没有任何状态优化的余地
所以就要考虑使用特殊方法结合性质优化
然后手玩,发现打饭时间长的一定是在前面
所以可以排个序,然后利用 前面的人 非1即2的原理优化
所以1开始的时间设进状态,这样2开始的时间也就可以补出来,然后就可以更新了
码:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct la
{int x,y;
}a[233];
int f[2][50000],n,i,m,j,b[233],o,ans=1099999999;
bool cmp(la a,la b)
{
return a.y>b.y;
}
int main()
{scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].y);}sort(a+1,a+1+n,cmp);
for(i=1;i<=n;i++)b[i]=b[i-1]+a[i].x;
for(i=0;i<=40000;i++)f[o^1][i]=f[o][i]=999999;
f[o^1][0]=0;
for(i=1;i<=n;i++,o^=1)
{for(j=0;j<=40000;j++){f[o][j+a[i].x]=min(f[o][j+a[i].x],max(f[o^1][j],j+a[i].x+a[i].y));f[o][j]=min(max(f[o^1][j],b[i]-j+a[i].y),f[o][j]); } for(j=0;j<=40000;j++)f[o^1][j]=999999;
}
for(i=1;i<=40000;i++)
ans=min(ans,f[o^1][i]);
printf("%d",ans);
}
[ZJOI2005]午餐 贪心+dp相关推荐
- 【BZOJ1899】[Zjoi2004]Lunch 午餐 贪心+DP
[BZOJ1899][Zjoi2004]Lunch 午餐 Description 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时 ...
- BZOJ1899 [Zjoi2004]Lunch 午餐 贪心+DP
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=1899 题解 如果只有一个窗口,那么可以这样考虑:因为最后一个人打完饭的时间是固定的,那么不如就 ...
- luogu2577/bzoj1899 午餐 (贪心+dp)
首先,应该尽量让吃饭慢的排在前面,先按这个排个序 然后再来决定每个人到底去哪边 设f[i][j]是做到了第i个人,然后1号窗口目前的总排队时间是j,目前的最大总时间 有这个i和j的话,再预处理出前i个 ...
- ZJOI2005午餐
描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不 ...
- 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]- ∑ ...
- [ZJOI2005]午餐
题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各 ...
最新文章
- C#编程概念系列(一):面向对象编程
- XCTF-高手进阶区:Web_php_include
- linux之so文件、a文件、o文件的区别
- 万张图片,流畅体验——记一次 Vue 列表渲染
- 什么是map评测指标
- 接口规范 12. 自动删除相关接口
- 天干物燥,给你写BUG的心来点甘露
- 宽字节UTF-8、多字节互转
- Atitit db access req数据库访问规范jdo jdbc jpa pdo sql 目录 1. 常见特性	1 1.1. 元数据 API	1 1.2. 分布式事务 vs事务中使用 Sav
- wordpress文章,页面,小工具如何使用php代码
- Scratch二次开发7:Scratch3.0作品的生命周期(各类状态)分析讲解
- 笔记 时间2012年2月15日14:35:30
- 约翰诺依曼在1940年发明了计算机英语,冯诺依曼元胞自动机
- 微信小程序wxacode.getUnlimited 生成圆形二维码
- 交叉编译libxcb与X11
- [论坛专贴]关于接口
- 如何用电脑模拟手机屏幕滑动 Total Control帮您实现
- SAP FI 系列 (031) - 允许在会计凭证中修改统驭科目
- 201771010137 赵栋《面向对象程序设计(java)》第十五周学习总结
- 老嘤学习笔记 python深浅拷贝