1165 火烧赤壁 vijosoj (数组模拟)
来源:互联网 发布:java模拟器安卓4.4.2版 编辑:程序博客网 时间:2024/04/19 09:23
1165火烧赤壁
Accept
描述
曹操平定北方以后,公元208年,率领大军南下,进攻刘表。他的人马还没有到荆州,刘表已经病死。他的儿子刘琮听到曹军声势浩大,吓破了胆,先派人求降了。
孙权任命周瑜为都督,拨给他三万水军,叫他同刘备协力抵抗曹操。
隆冬的十一月,天气突然回暖,刮起了东南风。
没想到东吴船队离开北岸大约二里距离,前面十条大船突然同时起火。火借风势,风助火威。十条火船,好比十条火龙一样,闯进曹军水寨。那里的船舰,都挤在一起,又躲不开,很快地都烧起来。一眨眼工夫,已经烧成一片火海。
曹操气急败坏的把你找来,要你钻入火海把连环线上着火的船只的长度统计出来!
格式
输入格式
第一行:N
以后N行,每行两个数:Ai Bi(表示连环线上着火船只的起始位置和终点,-10^9<=Ai,Bi<=10^9)
输出格式
输出着火船只的总长度
样例1
样例输入1[复制]
3-1 15 112 9
样例输出1[复制]
11
提示
n<=20000
如果Ai=Bi是一个点则看作没有长度
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct zz{int a,b;}q[50010];int cmp(zz x,zz y){if(x.a!=y.a)return x.a<y.a;return x.b<y.b;}int main(){int n;int i,j,k;long long int sum;int s,e;while(scanf("%d",&n)!=EOF){sum=0;for(i=0;i<n;i++)scanf("%d%d",&q[i].a,&q[i].b);sort(q,q+n,cmp);for(i=1;i<n;i++){if(q[i].a<q[i-1].b&&q[i].b>q[i-1].b)q[i].a=q[i-1].b;else if(q[i].a<q[i-1].b&&q[i].b<=q[i-1].b){q[i].a=q[i-1].b;q[i].b=q[i-1].b;}}for(i=0;i<n;i++)sum+=q[i].b-q[i].a;printf("%lld\n",sum);}return 0;}
//这是队友的
#include<stdio.h>#include<algorithm>using namespace std;const int MAXN=100010;struct Node{ int s,e;};Node date[MAXN];int cmp(Node a,Node b){ if(a.s!=b.s)return a.s<b.s; return a.e<b.e;}int main(){ int N; while(~scanf("%d",&N)){ for(int i=0;i<N;i++){ scanf("%d%d",&date[i].s,&date[i].e); } sort(date,date+N,cmp); int s=0,e=0,ans=0; for(int i=0;i<N;i++){ if(!i) {s=date[i].s;e=date[i].e;} else if(date[i].s<=e&&date[i].e>e){ e=date[i].e; } else if(date[i].s>e) {ans+=e-s;s=date[i].s;e=date[i].e;} } ans+=e-s; printf("%d\n",ans); } return 0;}
0 0
- 1165 火烧赤壁 vijosoj (数组模拟)
- (NOIP2015)复赛模拟试题 vijos1165 火烧赤壁
- vijos 1165_火烧赤壁_离散
- 火烧赤壁的故事
- 火烧赤壁 洛谷 vijos
- 洛谷p1496火烧赤壁
- nbut 1058 火烧赤壁 2
- NOJ[1508] 火烧赤壁2
- 2774 火烧赤壁(排序贪心)
- 火烧赤壁(vijos某次模拟赛题目noip2004校门口外的树加强版)略高于noip普及组难度
- NOJ——1508火烧赤壁2(并查集+启发式合并+逆序加边)
- 【NOIP模拟】赤壁情(DP)
- NBUT 1508 火烧赤壁2【离线+逆序并查集】
- vijos p1103校门外的树 和 P1165火烧赤壁
- 赤壁
- 【JZOJ5342】【NOIP2017模拟9.2A组】赤壁情
- 【ZJOI2012】波浪 &【NOIP2017模拟9.2A组】赤壁情
- zoj2770(差分约束)火烧连营
- Objective-c Method Swizzling的详细使用方法
- Unity3D中鼠标旋转物体
- 定时器的使用
- Qt数据库之添加MySQL驱动插件
- Python应用(一) 识别网站验证码以及识别算法
- 1165 火烧赤壁 vijosoj (数组模拟)
- thinkphp——制作一个输出调试函数,随时调试
- 高通|AR扫描图片播放视频
- 不规整的验证码图片切割字符
- yuyv_to_yv12
- 让 VLC 尽量使用 android 平台的硬件解码
- Android-Recovery Mode(recover模式详解)
- Android 性能优化之使用MAT分析内存泄露问题
- struts2的空指针异常札记