小小粉丝度度熊

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1343    Accepted Submission(s): 435

Problem Description
度度熊喜欢着喵哈哈村的大明星——星星小姐。
为什么度度熊会喜欢星星小姐呢?
首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听。
但这都不是最重要的,最重要的是,星星小姐拍的一手好代码!
于是度度熊关注了星星小姐的贴吧。
一开始度度熊决定每天都在星星小姐的贴吧里面签到。
但是度度熊是一个非常健忘的孩子,总有那么几天,度度熊忘记签到,于是就断掉了他的连续签到。
不过度度熊并不是非常悲伤,因为他有m张补签卡,每一张补签卡可以使得某一忘签到的天,变成签到的状态。
那么问题来了,在使用最多m张补签卡的情况下,度度熊最多连续签到多少天呢?
Input
本题包含若干组测试数据。
第一行两个整数n,m,表示有n个区间,这n个区间内的天数,度度熊都签到了;m表示m张补签卡。
接下来n行,每行两个整数(l[i],r[i]),表示度度熊从第l[i]天到第r[i]天,都进行了签到操作。
数据范围:
1<=n<=100000
0<=m<=1000000000
0<=l[i]<=r[i]<=1000000000
注意,区间可能存在交叉的情况。
Output
输出度度熊最多连续签到多少天。
Sample Input
2 1
1 1
3 3
1 2
1 1
Sample Output
3
3

Hint

样例一:度度熊补签第2天,然后第1天、第二天和第三天都进行了签到操作。
样例二:度度熊补签第2天和第3天。

Source
先把这些区间合并为不相交的区间
然后利用尺取法进行求解
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<cstdlib>
  6. #include<string.h>
  7. #include<set>
  8. #include<vector>
  9. #include<queue>
  10. #include<stack>
  11. #include<map>
  12. #include<cmath>
  13. typedef long long ll;
  14. typedef unsigned long long LL;
  15. using namespace std;
  16. const double PI=acos(-1.0);
  17. const double eps=0.0000000001;
  18. const int INF=0x3f3f3f3f;
  19. const int N=+;
  20. struct node{
  21. ll x,y;
  22. ll len;
  23. }a[N],b[N];
  24. bool cmp(node aa,node bb){
  25. if(aa.x==bb.x)return aa.y<bb.y;
  26. else{
  27. return aa.x<bb.x;
  28. }
  29.  
  30. }
  31. int main(){
  32. int n,m;
  33. while(scanf("%d%d",&n,&m)!=EOF){
  34. for(int i=;i<=n;i++){
  35. scanf("%I64d%I64d",&a[i].x,&a[i].y);
  36. }
  37. memset(b,,sizeof(b));
  38. sort(a+,a++n,cmp);
  39.  
  40. int t=;
  41. for(int i=;i<=n;){
  42. int j=i+;
  43. b[t].x=a[i].x;
  44. b[t].y=a[i].y;
  45. while(b[t].y>=a[j].x&&j<=n){
  46. if(b[t].y>=a[j].y){
  47. j++;
  48. continue;
  49. }
  50. else{
  51. b[t].y=a[j].y;
  52. }
  53. j++;
  54. }
  55. i=j;
  56. t++;
  57. }
  58. // cout<<t<<endl;
  59. /*for(int i=0;i<t;i++){
  60. cout<<b[i].x<<" "<<b[i].y<<endl;
  61. }*/
  62. sort(b,b+t,cmp);
  63. int l=;
  64. int r=;
  65. ll tt=m;
  66. ll ans=;
  67. while(r<t&&l<t){
  68. while(b[r+].x-b[r].y-<=tt){
  69. if(r+>=t)break;
  70. tt=tt-(b[r+].x-b[r].y-);
  71. r++;
  72. }
  73. ans=max(ans,b[r].y-b[l].x++tt);
  74. if((b[l+].x-b[l].y-+tt)<=m&&l+!=t){
  75. tt=tt+(b[l+].x-b[l].y-);
  76. }
  77. l++;
  78. if(l>r)r++;
  79. }
  80. cout<<ans<<endl;
  81. }
  82. }

hdu 6119 小小粉丝度度熊(尺取)的更多相关文章

  1. HDU 6119 小小粉丝度度熊 【预处理+尺取法】(2017"百度之星"程序设计大赛 - 初赛(B))

    小小粉丝度度熊 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  2. hdu 6119 小小粉丝度度熊

    小小粉丝度度熊 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  3. HDU 6119 小小粉丝度度熊 (区间去重)【尺取】

    <题目链接> 度度熊决定每天都在星星小姐的贴吧里面签到. 但是度度熊是一个非常健忘的孩子,总有那么几天,度度熊忘记签到,于是就断掉了他的连续签到. 不过度度熊并不是非常悲伤,因为他有m张补 ...

  4. HDU 6119 小小粉丝度度熊 双指针

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119 题意:中文题面. 解法:先处理可能交叉的区间,然后容易发现满足双指针的特性. //HDU 611 ...

  5. 【二分+尺取】HDU 6119 小小粉丝度度熊

    http://acm.hdu.edu.cn/showproblem.php?pid=6119 [思路] 首先通过处理交叉的可以处理成不交叉的 然后二分查找答案 如何判断一个长度是否可行? 双指针O(n ...

  6. HDU 6119 小小粉丝度度熊(Two pointers)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6119 [题目大意] 给出一些签到区间和一些补签卡,问可以创造的最长连续签到区间 [题解] 如果我们 ...

  7. Hdu-6119 小小粉丝度度熊 尺取

    题面 题意:在一大段时间里,告诉你,你签到了哪些区间,现在再给你m张补签卡,问你最多能实现连续签到多少天 题解:那些时间区间是有重叠的,所以我们先排序离散,并得到哪些区间是可以补签的,这样问题就变成, ...

  8. HDU 6119 2017百度之星初赛B 小小粉丝度度熊 (二分)

    小小粉丝度度熊 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  9. 2017"百度之星"程序设计大赛 - 初赛(B)小小粉丝度度熊

    Problem Description 度度熊喜欢着喵哈哈村的大明星——星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要 ...

随机推荐

  1. 新安装数据库sqlserver2008r2,使用javaweb连接不上问题处理

    鼠标右键[计算机]-->[管理],打开界面如下: 选择自己数据库的实例名: 选择TCP/IP:右键[属性],将所有TCP动态端口的[0]删掉,TCP端口设为1433:重启服务,即可连接. PS: ...

  2. java环境初级部署及项目搭建

    一.网页地址 Java各版本下载地址: http://www.oracle.com/technetwork/cn/java/archive-139210-zhs.html Eclipse官方下载地址: ...

  3. virtualenv与virtualenvwrapper

    一.Linux下安装.配置virtualenv pip3 install virtualenv # 创建虚拟环境env1 virtualenv env1 --no-site-packages --py ...

  4. linux top-显示或管理执行中的程序

    推荐:更多linux 性能监测与优化 关注:linux命令大全 top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.通过top命令所提供的互动式界面, ...

  5. STM32F103移值FreeRtos笔记

    RTOS版本:FreeRTOS_V8.2.2 一.下载FreeRTOS源文件       这个可以在百度上下载,或者在官网上面下载http://www.freertos.org/a00104.html ...

  6. Spring Security核心类关系图

    以有限的脑力记忆无限的Knowledge,多画图,多画图,多画图. 核心类Authentication 和 GrantedAuthority AbstractAuthenticationToken 由 ...

  7. 用记事本写第一个Java程序

    public class Welcome{ public static void main(String[] args){ System.out.println("我是尚学堂的高淇,很高兴认 ...

  8. [bzoj2440]完全平方数[中山市选2011][莫比乌斯函数][线性筛][二分答案]

    题意:求第k个分解质因子后质因子次数均为一的数,即求第k个无平方因子数. 题解: 首先二分答案mid,那么现在就是要求出mid以内的无平方因子数的个数. 其次枚举$\sqrt{mid}$内的所有质数, ...

  9. 备用交换机(cogs 8)

    [问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规 ...

  10. rpm 命令的使用

    rpm -ivh    xv-3.10a-13.i386.rpm 在Terminal中,基本的安装指令如下: rpm -i    xv-3.10a-13.i386.rpm 如果你的连网速度足够快,也可 ...