HDU2491 贪心

来源:互联网 发布:linux怎么解压war包 编辑:程序博客网 时间:2024/05/01 06:24

P结构体中

no:第i个聚会不能超过举行的时间

r:第i个聚会结束的时间

pa[i].no >= pa[i - 1].r:当第i个聚会不能超过举行的时间大于第i-1个聚会结束的时间才能继续循环

#include <cstdio>#include <algorithm>using namespace std;struct P{    int no, r;    int tmp;};int cl, st, ed;int len;bool cmp(P, P);P pa[100100];int clen[100100];int N;int main(){    //freopen("1.txt", "r", stdin);    while(scanf("%d", &N) != EOF)    {        if(N == 0) break;        bool flag;        flag = 1;        for(int i = 0; i < N; i++)        {            scanf("%d%d", &st, &ed);            len = (ed - st) / 2 + 1;            pa[i].no = ed - len; //no ecced;            pa[i].r = st + len; //end local            clen[i] = len;        }        sort(pa, pa + N, cmp);        for(int i = 1; i < N; i++)        {            if(pa[i].no >= pa[i - 1].r) {pa[i].r = pa[i - 1].r + clen[i];}            else {flag = 0; break;}        }        if(flag) printf("YES\n");        else printf("NO\n");    }}bool cmp(P a, P b){    return a.no < b.no;}


原创粉丝点击