小小粉丝度度熊 HDU
来源:互联网 发布:众人皆知的拼音 编辑:程序博客网 时间:2024/04/28 20:27
第一次写尺取,最开始写的很挫,最后看了一下别人的框架又重新写了一遍。
思路:首先预处理下,将相交区间何必,然后用尺取扫描一遍就可以了,
#include <algorithm>#include <bitset>#include <cassert>#include <climits>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <deque>#include <iomanip>#include <iostream>#include <map>#include <numeric>#include <queue>#include <set>#include <stack>#include <string>using namespace std;struct point{long long int l, r;};point p[100000+100];point p2[100000+100];bool cmp(const point &a, const point &b){return a.l < b.l;}int n;long long int m;int main(){while (scanf("%d%ld", &n, &m) != EOF) {for (int i = 0; i < n; i++) {scanf("%ld%ld", &p[i].l, &p[i].r);}sort(p, p+n, cmp);int num = 0;long long int l1 = p[0].l;long long int r1 = p[0].r;for (int i = 1; i < n; i++) {if (p[i].l > r1+1) {p2[num].l = l1;p2[num++].r = r1;r1 = p[i].r;l1 = p[i].l;}if (p[i].l <= r1+1) {r1 = max(r1, p[i].r);}}p2[num].l = l1;p2[num++].r = r1;int m1 = 0;l1 = 0;long long int ans = 0;for (int i = 1; i < num; i++) {m1 += p2[i].l - p2[i-1].r - 1;while (m1 > m) {m1 -= p2[l1+1].l - p2[l1].r - 1;l1++;}ans = max(ans, p2[i].r - p2[l1].l + 1 + m - m1);}ans = max(ans, p2[0].r - p2[0].l + 1 + m);cout << ans << endl;}return 0;}
阅读全文
0 0
- 小小粉丝度度熊 HDU
- 小小粉丝度度熊 HDU
- hdu 6119 小小粉丝度度熊
- HDU 6119 小小粉丝度度熊
- [HDU 6119]小小粉丝度度熊
- hdu 6119 小小粉丝度度熊(尺取)
- HDU 6119 小小粉丝度度熊 双指针
- HDU 6119 小小粉丝度度熊 (尺取法)
- hdu 6119 小小粉丝度度熊(尺取法)
- 【尺取法】hdu 6119 小小粉丝度度熊
- 【HDU 6119 小小粉丝度度熊】 & 尺取
- 【尺取法】hdu 6119 小小粉丝度度熊
- HDU 6119 小小粉丝度度熊【尺取法】
- hdu 6119 小小粉丝度度熊 【想法题】
- 小小粉丝度度熊
- 小小粉丝度度熊
- HDU6119 小小粉丝度度熊
- 小小粉丝度度熊
- 东岱FabCost成本管理控制系统批量导入零件加工清单,助企业控制成本,提高加工效率
- Python类和继承
- Spring Boot application.propertis
- 消息队列 与 邮件发送
- 以卖票为列的共享内存和信号量的学习
- 小小粉丝度度熊 HDU
- CSU 1511——残缺的棋盘
- 继承
- 装箱
- java Map的遍历
- 暑期ssh框架spring学习笔记二
- apache
- pycharm破解的两种方式
- Autonomous Landing of a Multirotor Micro Air Vehicle on a High Velocity Ground Vehicle论文翻译