hdu6119 小小粉丝度度熊【尺取法(滑动窗口)】
这是2017百度之星初赛二的赛题。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119
代码思路:
- 排序后合并交叉区间
- 使用尺取法(滑动窗口法),每次向前加入一段区间,若此时窗口的区间间隔之和大于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 小小粉丝度度熊【尺取法(滑动窗口)】相关推荐
- 2017百度之星初赛:B-1006. 小小粉丝度度熊(贪心+尺取)
小小粉丝度度熊 Accepts: 1075 Submissions: 5191 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...
- 【HDU - 6119】小小粉丝度度熊 (区间合并,尺取,思维)
题干: 度度熊喜欢着喵哈哈村的大明星--星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要的是,星星小姐拍的一手好代码! ...
- 百度之星小小粉丝度度熊
Problem Description 度度熊喜欢着喵哈哈村的大明星--星星小姐. 为什么度度熊会喜欢星星小姐呢? 首先星星小姐笑起来非常动人,其次星星小姐唱歌也非常好听. 但这都不是最重要的,最重要 ...
- 2017百度之星初赛(B)1006小小粉丝度度熊------hdu6119
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=6119 分析: 我们一看到这题呢,因为题目明确告诉我们有重叠,所以我们肯定要先排序预处理下啦,然后呢, ...
- 解题报告 (十三) 尺取法
文章目录 尺取法 解题报告 PKU 2100 Graveyard Design PKU 3061 Subsequence PKU 2739 Sum of Consecutive Prime Numbe ...
- 算法篇之-----滑动窗口(尺取法)
滑动窗口(尺取法 1. 介绍 2. 滑动窗口法的大体框架 4.最小覆盖子串 5.窗口数量 6.最小值 1. 介绍 滑动窗口法,也叫尺取法(可能也不一定相等,大概就是这样 =.=),可以用来解决一些查找 ...
- 饕餮盛宴——滑动窗口(尺取法)
饕餮盛宴--滑动窗口(尺取法) 注意:此章节作为复习使用,直接代码实现,不写思路. LeetCode1004 代码实现 class Solution {public int longestOnes(i ...
- 力扣3. 无重复字符的最长子串 two pointer算法|滑动窗口|尺取法
无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 & ...
- POJ 3061 (二分+前缀和or尺取法)
题目链接: http://poj.org/problem?id=3061 题目大意:找到最短的序列长度,使得序列元素和大于S. 解题思路: 两种思路. 一种是二分+前缀和.复杂度O(nlogn).有点 ...
最新文章
- linux gcc编译参数顺序问题
- Android移动开发之【通往安卓的神奇之旅】Android的五大布局和AndroidManifest
- 枚举类的使用-使用实例域来替代序数
- 【研发管理】华为十大架构与设计核心原则
- Prometheus部署监控容器
- java 铁三车强度如何_工欲善其事,必先利其器--GIANT TRINITY铁三车
- Type TIMESTAMP(3) of table field ‘onSellTime‘ does not match with the physical type TIMESTAMP(6)
- 计算机科学与教育信息化国际会议,A Courses Ontology System for Computer Science Education...
- Docker image Introduce
- ASP.NET Core on K8S深入学习(9)Secret Configmap
- sakura计算机谱子,【14.08.13自拟】SAKURA急求生物股长的简谱
- mfc 添加 excel类给定关键字不在字典中_pyppeteer最为核心类Page的接口方法
- Linux select 一网打尽
- 研究生图像处理该怎的自学_2020研究生入学资格,中级经济师资格-小嗨视频课堂...
- 1.C和C++区别,以及const分析(底层const/顶层const)
- linux内核空间open,linux kernel之详解从用户态open到内核驱动实现流程
- 【洛谷OJ】传球游戏
- 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1
- 国内外云服务器运维面板有哪些?运维面板全面汇总
- 【Java工具类】中文转换成汉语拼音工具-pinyin4j
热门文章
- 【硬件】常见数据传输接口引脚定义
- 新图源!季度更新!吉林一号全国亚米级季度更新卫星影像给行业带来更多可能
- evb测试板_最新推出AT2440EVB-II开发板(核心板+底板结构)
- yum 命令执行出现failed: BDB0113....BDB1507 Thread died in Berkeley DB library
- 爬取李开复博客并导入mongodb数据库
- 【渝粤教育】互联网营销概论
- 玉洁哥的设计模式指摘
- 小计算机cv值怎么计算方法,Cv值(cv值与流量如何换算)
- Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
- 学习《操作系统真相还原》三