这是2017百度之星初赛二的赛题。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119

代码思路:

  1. 排序后合并交叉区间
  2. 使用尺取法(滑动窗口法),每次向前加入一段区间,若此时窗口的区间间隔之和大于m,则抛掉窗口前面部分的区间,直到区间间隔重新小于m, 此步骤时是O(n)时间复杂度。
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <fstream>
#include <sstream>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
using namespace std;typedef long long ll;
typedef pair<ll, ll> pii;
ll mod = 1000000007;
#define eps 1e-11int main()
{ll n, m;while (cin >> n >> m){vector<pii> lr1;for (int i = 0; i < n; i++){ll a, b;cin >> a >> b;lr1.push_back(make_pair(a,b));}sort(lr1.begin(), lr1.end());vector<pii> lr;pii cur = lr1[0];for (int i = 1; i < n; i++){if (lr1[i].first <= cur.second){cur.second = max(cur.second, lr1[i].second);}else{lr.push_back(cur);cur = lr1[i];}}lr.push_back(cur);ll sumval = 0, res = lr[0].second - lr[0].first + 1 + m, l = 0;for (int i = 1; i < lr.size(); i++){sumval += lr[i].first - lr[i - 1].second - 1;while (sumval > m){sumval -= lr[l + 1].first - lr[l].second - 1;l++;}res = max(res, lr[i].second - lr[l].first + 1 + m - sumval);}cout << res << endl;}return 0;
}

hdu6119 小小粉丝度度熊【尺取法(滑动窗口)】相关推荐

  1. 2017百度之星初赛:B-1006. 小小粉丝度度熊(贪心+尺取)

    小小粉丝度度熊  Accepts: 1075  Submissions: 5191  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 327 ...

  2. 【HDU - 6119】小小粉丝度度熊 (区间合并,尺取,思维)

    题干: 度度熊喜欢着喵哈哈村的大明星--星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要的是,星星小姐拍的一手好代码! ...

  3. 百度之星小小粉丝度度熊

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

  4. 2017百度之星初赛(B)1006小小粉丝度度熊------hdu6119

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=6119 分析: 我们一看到这题呢,因为题目明确告诉我们有重叠,所以我们肯定要先排序预处理下啦,然后呢, ...

  5. 解题报告 (十三) 尺取法

    文章目录 尺取法 解题报告 PKU 2100 Graveyard Design PKU 3061 Subsequence PKU 2739 Sum of Consecutive Prime Numbe ...

  6. 算法篇之-----滑动窗口(尺取法)

    滑动窗口(尺取法 1. 介绍 2. 滑动窗口法的大体框架 4.最小覆盖子串 5.窗口数量 6.最小值 1. 介绍 滑动窗口法,也叫尺取法(可能也不一定相等,大概就是这样 =.=),可以用来解决一些查找 ...

  7. 饕餮盛宴——滑动窗口(尺取法)

    饕餮盛宴--滑动窗口(尺取法) 注意:此章节作为复习使用,直接代码实现,不写思路. LeetCode1004 代码实现 class Solution {public int longestOnes(i ...

  8. 力扣3. 无重复字符的最长子串 two pointer算法|滑动窗口|尺取法

    无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 & ...

  9. POJ 3061 (二分+前缀和or尺取法)

    题目链接: http://poj.org/problem?id=3061 题目大意:找到最短的序列长度,使得序列元素和大于S. 解题思路: 两种思路. 一种是二分+前缀和.复杂度O(nlogn).有点 ...

最新文章

  1. linux gcc编译参数顺序问题
  2. Android移动开发之【通往安卓的神奇之旅】Android的五大布局和AndroidManifest
  3. 枚举类的使用-使用实例域来替代序数
  4. 【研发管理】华为十大架构与设计核心原则
  5. Prometheus部署监控容器
  6. java 铁三车强度如何_工欲善其事,必先利其器--GIANT TRINITY铁三车
  7. Type TIMESTAMP(3) of table field ‘onSellTime‘ does not match with the physical type TIMESTAMP(6)
  8. 计算机科学与教育信息化国际会议,A Courses Ontology System for Computer Science Education...
  9. Docker image Introduce
  10. ASP.NET Core on K8S深入学习(9)Secret Configmap
  11. sakura计算机谱子,【14.08.13自拟】SAKURA急求生物股长的简谱
  12. mfc 添加 excel类给定关键字不在字典中_pyppeteer最为核心类Page的接口方法
  13. Linux select 一网打尽
  14. 研究生图像处理该怎的自学_2020研究生入学资格,中级经济师资格-小嗨视频课堂...
  15. 1.C和C++区别,以及const分析(底层const/顶层const)
  16. linux内核空间open,linux kernel之详解从用户态open到内核驱动实现流程
  17. 【洛谷OJ】传球游戏
  18. 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1
  19. 国内外云服务器运维面板有哪些?运维面板全面汇总
  20. 【Java工具类】中文转换成汉语拼音工具-pinyin4j

热门文章

  1. 【硬件】常见数据传输接口引脚定义
  2. 新图源!季度更新!吉林一号全国亚米级季度更新卫星影像给行业带来更多可能
  3. evb测试板_最新推出AT2440EVB-II开发板(核心板+底板结构)
  4. yum 命令执行出现failed: BDB0113....BDB1507 Thread died in Berkeley DB library
  5. 爬取李开复博客并导入mongodb数据库
  6. 【渝粤教育】互联网营销概论
  7. 玉洁哥的设计模式指摘
  8. 小计算机cv值怎么计算方法,Cv值(cv值与流量如何换算)
  9. Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
  10. 学习《操作系统真相还原》三