题目链接: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相关推荐

  1. 【CodeForces - 589F】Gourmet and Banquet (贪心,思维,二分)

    题干: A gourmet came into the banquet hall, where the cooks suggested n dishes for guests. The gourmet ...

  2. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  3. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  4. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  5. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  6. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  7. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  8. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  9. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

最新文章

  1. Understanding Stock Types in SAP EWM
  2. PHP连接数据库的三种方式
  3. n-sphere计算方法-
  4. 有关怎么在不创建新的按钮的前提下改变返回按钮的标题
  5. tomcat站点配置
  6. Unix 初步(一)
  7. 作为 IT 行业的过来人,你有什么话想对后辈说的?
  8. ioread32函数有关知识
  9. 真实的用户,真实的中国互联网
  10. Mysql:语法:标志符、关键字
  11. Fluent软件零基础入门到精通教程
  12. IE浏览器不能自动显示PDF文件的解决办法
  13. CDMA2000中的Walsh码,PN码,短码序列的初相位偏置(PN OFFSET)之間的差別與關係(1)
  14. 中国大数据产业地图,四川61家大数据企业上榜!
  15. 简单OCX控件的开发
  16. 科技爱好者周刊:第 83 期
  17. 数学与计算机科学虎扑,数学发展到今天还有继续研究的必要吗?
  18. 25套五彩缤纷的矢量网页背景图片素材【免费下载】
  19. 三姬分金/四姬分金/五姬分金(海盗分金币)等经典博弈论问题
  20. 向量 模(module) 范数(norm)

热门文章

  1. python字符串最后一次的索引_关于python:如何每3个索引切一个字符串?
  2. CPU C-state cpuidle driver
  3. PYTHON---利息计算
  4. 为什么优秀的程序员既懒又笨
  5. Conductor 3.2.0 客户端开发记录
  6. 3年功能测试拿8K,被刚进来的薪资倒挂,其实你在假装努力
  7. html+css美图卡片小练习(未用浮动)
  8. android 主流机型适配,Android 10将适配三年前机型,再度证明了旗舰的价值
  9. 【Java源码分析】String 比较 equals
  10. 准研究生们需要知道的50件事