CodeForces - 589F
题目链接:http://codeforces.com/problemset/problem/589/F
题目翻译:
一个美食家走进宴会厅,厨师向客人推荐了n道菜。美食家知道每道菜的时间安排:每道菜何时上桌。
对于第i道菜,他在ai和bi(宴会开始后的几秒钟)的时间里知道了两个整数的时刻——厨师将第i道菜端进大厅,何时端出(ai < bi)。例如,如果ai = 10, bi = 11,那么第i道菜可以在一秒钟内吃完。
这些菜的数量很多,所以保证只要这道菜可以吃(即在大厅里),就不会用完。
美食家想尝试这n道菜肴,而不是冒犯任何厨师。正因为如此,美食家们想要在同样的时间里吃每一道菜。在吃的过程中,美食家可以立即在菜肴之间切换。他只允许在整数时刻在盘子之间切换。美食家只能同时吃一道菜。它可以在吃完其他的菜后再回到盘子里。
美食家希望在宴会上吃得尽可能久,不违反上述任何条件。你能帮他找出他在宴会上最多能吃多少菜吗?
输入
输入的第一行包含一个整数n(1≤n≤100)-宴会菜肴的数量。
以下n行包含了关于菜肴可用性的信息。第i个行包含两个整数ai和bi(0≤ai < bi≤10000)——瞬间变为可用时的第i个菜吃,当第i个菜就是离开大厅。
输出
输出必须包含唯一的整数-美食家在宴会上吃菜的最大总时间。
美食家可以即时地在菜肴之间切换,但只在整数时刻。它可以在吃完其他的菜后再回到盘子里。而且在每一个时刻,他只能吃一道菜。
解题思路:首先构建一个结构体,结构体的里定义每道菜的上菜时间与结束 时间,按照结束时间将其排序,定义一个visit数组,表示该时刻是否在食用某道菜,找到每道菜的可能的食用时间1<=t<=maxs(所有菜可食用的时间的最小值)在这个区间进行二分,找到能够符合题意的最大的值想x,最后输出x*n;
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=105;
struct st
{int bn,en;bool operator <(const st& a){if(en!=a.en)return en<a.en;elsereturn bn<a.bn;}
}stm[maxn];
int maxs=inf,ans=0;
int visit[10100],n;
bool jug(int a)
{memset(visit,0,sizeof(visit));int i,j,cnt;for(i=0;i<n;i++){cnt=0;if(stm[i].en-stm[i].bn>=a){for(j=stm[i].bn;j<stm[i].en;j++){if(!visit[j]){cnt++;visit[j]=1;}if(cnt==a){// printf("j:%d cnt:%d\n",j,cnt);break;}}}elsereturn false;if(cnt!=a)return false;}return true;
}
void bin_search()
{int l,r;l=1;r=maxs;int mid;while(l<=r){mid=(l+r)/2;if(jug(mid)){ans=mid;// printf("l:%d r:%d mid:%d\n",l,r,mid);l=mid+1;}elser=mid-1;}
}
int main()
{int i;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d%d",&stm[i].bn,&stm[i].en);maxs=min(maxs,stm[i].en-stm[i].bn);}sort(stm,stm+n);bin_search();printf("%d",ans*n);return 0;
}
CodeForces - 589F相关推荐
- 【CodeForces - 589F】Gourmet and Banquet (贪心,思维,二分)
题干: A gourmet came into the banquet hall, where the cooks suggested n dishes for guests. The gourmet ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
最新文章
- Understanding Stock Types in SAP EWM
- PHP连接数据库的三种方式
- n-sphere计算方法-
- 有关怎么在不创建新的按钮的前提下改变返回按钮的标题
- tomcat站点配置
- Unix 初步(一)
- 作为 IT 行业的过来人,你有什么话想对后辈说的?
- ioread32函数有关知识
- 真实的用户,真实的中国互联网
- Mysql:语法:标志符、关键字
- Fluent软件零基础入门到精通教程
- IE浏览器不能自动显示PDF文件的解决办法
- CDMA2000中的Walsh码,PN码,短码序列的初相位偏置(PN OFFSET)之間的差別與關係(1)
- 中国大数据产业地图,四川61家大数据企业上榜!
- 简单OCX控件的开发
- 科技爱好者周刊:第 83 期
- 数学与计算机科学虎扑,数学发展到今天还有继续研究的必要吗?
- 25套五彩缤纷的矢量网页背景图片素材【免费下载】
- 三姬分金/四姬分金/五姬分金(海盗分金币)等经典博弈论问题
- 向量 模(module) 范数(norm)
热门文章
- python字符串最后一次的索引_关于python:如何每3个索引切一个字符串?
- CPU C-state cpuidle driver
- PYTHON---利息计算
- 为什么优秀的程序员既懒又笨
- Conductor 3.2.0 客户端开发记录
- 3年功能测试拿8K,被刚进来的薪资倒挂,其实你在假装努力
- html+css美图卡片小练习(未用浮动)
- android 主流机型适配,Android 10将适配三年前机型,再度证明了旗舰的价值
- 【Java源码分析】String 比较 equals
- 准研究生们需要知道的50件事