华师一附中OI组
标题:
P1496 火烧赤壁
[打印本页]
作者:
admin
时间:
2018-7-3 16:45
标题:
P1496 火烧赤壁
https://www.luogu.org/problemnew/show/P1496
题目描述
曹操平定北方以后,公元208年,率领大军南下,进攻刘表。他的人马还没有到荆州,刘表已经病死。他的儿子刘琮听到曹军声势浩大,吓破了胆,先派人求降了。
孙权任命周瑜为都督,拨给他三万水军,叫他同刘备协力抵抗曹操。
隆冬的十一月,天气突然回暖,刮起了东南风。
没想到东吴船队离开北岸大约二里距离,前面十条大船突然同时起火。火借风势,风助火威。十条火船,好比十条火龙一样,闯进曹军水寨。那里的船舰,都挤在一起,又躲不开,很快地都烧起来。一眨眼工夫,已经烧成一片火海。
曹操气急败坏的把你找来,要你钻入火海把连环线上着火的船只的长度统计出来!
输入输出格式
输入格式:
第一行:N
以后N行,每行两个数:Ai Bi(表示连环线上着火船只的起始位置和终点,-10^9<=Ai,Bi<=10^9)
输出格式:
输出着火船只的总长度
输入输出样例
输入样例#1:
3
-1 1
5 11
2 9
输出样例#1:
11
说明
n<=20000
如果Ai=Bi是一个点则看作没有长度
作者:
倚窗倾听风吹雨
时间:
2018-7-6 13:54
#include<iostream>
#include<algorithm>
using namespace std;
struct q
{
int s,e;
}a[20010];
int i,n,be,en,sum;
bool cmp(q x,q y)
{
return x.s<y.s;
}
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i].s>>a[i].e;
sort(a+1,a+n+1,cmp);
be=a[1].s;
en=a[1].e;
sum=en-be;
for(i=2;i<=n;i++)
{
if(a[i].s<=en)
{
if(a[i].e<en) continue;
else
{
be=en;
en=a[i].e;
sum+=en-be;
}
}
else
{
be=a[i].s;
en=a[i].e;
sum+=en-be;
}
}
cout<<sum;
return 0;
}
复制代码
作者:
吴语林
时间:
2018-7-29 20:57
#include <algorithm>
#include <iostream>
#include <cmath>
#include <cstring>
#include <map>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
using namespace std;
struct bla
{
int q,z;
}a[21000];
int n,all=0;
bool cmp(bla x,bla y)
{
return x.q<y.q;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i].q,&a[i].z);
sort(a+1,a+1+n,cmp);
int qi=a[1].q,zh=a[1].z;
for(int i=2;i<=n;i++)
{
if(a[i].q>zh)
all+=zh-qi,qi=a[i].q,zh=a[i].z;
else
zh=max(zh,a[i].z);
}
printf("%d",all+zh-qi);
return 0;
}
复制代码
作者:
黄煦喆
时间:
2018-8-30 21:57
#include<iostream>
#include<algorithm>
using namespace std;
int n,s,e;
long long ans;
struct ll
{
int x,y;
} l[20001];
bool operator< (ll A,ll B)
{
return A.x<B.x;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)cin>>l[i].x>>l[i].y;
sort(l+1,l+n+1);
s=l[1].x,e=l[1].y;
ans=e-s;
for(int i=2; i<=n; i++)
if(l[i].x<=e)
{
if(l[i].y>=e)
{
s=e;
e=l[i].y;
ans+=e-s;
}
}
else
{
s=l[i].x,e=l[i].y;
ans+=e-s;
}
cout<<ans;
return 0;
}
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2