洛谷p1496火烧赤壁

来源:互联网 发布:ipad上玩电音的软件 编辑:程序博客网 时间:2024/04/27 00:59

原题

排着找就行了,但是范围太大,需要离散化一下,左端点由小到大排序,然后每个进行判断。

另外结构体习惯用stablesort。

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<iomanip>#include<algorithm>#include<functional>#define in(x) scanf("%d",&x);using namespace std;int n;struct node{    int l,r;}a[20007];int cmp(node a,node b){    if(a.l==b.l) return a.r>b.r;    else return a.l<b.l;} int main(){    in(n);    for(int i=1;i<=n;++i)    {        in(a[i].l);in(a[i].r);    }    stable_sort(a+1,a+n+1,cmp);    int ans=0;    ans+=a[1].r-a[1].l;int maxx=a[1].r;    for(int i=2;i<=n;++i)    {        if(a[i].r<=maxx) continue;        if(a[i].l>=maxx)        ans+=a[i].r-a[i].l;        else        {            ans+=a[i].r-maxx;        }        maxx=a[i].r;    }    cout<<ans;    return 0;} 



原创粉丝点击