贪心 csust1250 绮礼的阴谋
来源:互联网 发布:淘宝可以申请几个账号 编辑:程序博客网 时间:2024/05/16 04:59
地址:acmore.net/web/showProblem?id=1250
第四次圣杯战争开始了,为了收集敌人的情报,言峰绮礼命令他的使魔Assassin 将自己的灵体分成n 份,分别监视教堂外的长直走道。
Assassin 每份灵体的能力不同,第i 份灵体可以监视到的区域是[ai, bi],绮礼想知道,监控范围内的区域的总长度是多少。
比如,第一份灵体的视野范围是[-1, 1],第二份灵体的视野范围是[0, 2],第三份灵体的视野范围是[3, 4]。
那么绮礼能获得的全部视野范围是[-1; 2] ∪ [3; 4],长度是4。
Input:
第1 行有一个整数,表示灵体数量n(1 ≤n ≤10000)。接下来有n 行,每行两个整数ai, bi(0≤ai,bi≤2×109),表示第i 个灵体的视野范围是[ai, bi]。
Sample Input:
2
0 1
3 4
Sample Output:
2
感觉这题是区间覆盖里一道非常经典的,特地拿出来与线段树对比
如果这题稍微改下,改成某个点最多能同时被多少个幽灵监控,那就是道很好的线段树了
有时候题目限制条件比较少的时候,贪心是一种很好的方法
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<vector>#include<queue>#include<algorithm>using namespace std;typedef long long LL;const int MX=10000+5;struct Seg{ LL L,R; bool operator<(const Seg&b)const{ if(L==b.L){ return R>b.R; } return L<b.L; }}A[MX];int main(){ int n; while(~scanf("%d",&n)){ for(int i=1;i<=n;i++){ scanf("%lld%lld",&A[i].L,&A[i].R); } sort(A+1,A+1+n); LL ans=0,L=0,R=0; for(int i=1;i<=n;i++){ if(L<=A[i].L&&A[i].L<=R) R=max(R,A[i].R); else{ ans+=R-L; L=A[i].L;R=A[i].R; } } ans+=R-L; printf("%lld\n",ans); } return 0;}
0 0
- 贪心 csust1250 绮礼的阴谋
- 微软的互联网阴谋
- 上帝的阴谋
- 广告点击的阴谋
- 自私的阴谋
- 警惕苹果的阴谋
- 百度背后的“阴谋”
- 山寨免费软件的阴谋!
- Google的新阴谋(原作)
- Google的新阴谋-转
- QQ的三大阴谋
- 日本歪曲历史的阴谋
- “汇乐缘”:甜蜜的阴谋?【zt】
- 设计模式的阴谋论
- 美国的次级债阴谋
- 设计模式的阴谋论
- 360,一场阴谋的制造者?
- 阴谋论的四个特征
- sscanf函数用法详解
- redis翻译_内存优化
- 实现左移指定位数,时间复杂度O(n) ,空间复杂度O(1)
- 一、概览linux spi驱动子系统
- notifyDatasetChanged() listview gridview 不生效的一种加分享别人的遇到的情况
- 贪心 csust1250 绮礼的阴谋
- Cocos2d-x的学习之旅(六)输入框
- leetcode 6 -- ZigZag Conversion
- java笔记16 String类
- 硬盘寻址方案
- HTML5学习-Day1
- RMAN前奏
- 关于XTYPE
- Guava ---- Files文件操作