zoukankan      html  css  js  c++  java
  • uva 10020 Minimal coverage

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=961

    贪心,排序,对左端点贪,找最大右端点。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define maxn 6000000
     5 using namespace std;
     6 
     7 int t,m;
     8 int t1;
     9 int ll[maxn],rr[maxn];
    10 struct node
    11 {
    12     int l,r;
    13     int id;
    14     bool operator <(const node &a)const
    15     {
    16         return (l<a.l)||(l==a.l&&r>a.r);
    17     }
    18 } p[maxn],ans[maxn];
    19 
    20 int main()
    21 {
    22     scanf("%d",&t);
    23     while(t--)
    24     {
    25         t1=0;
    26         scanf("%d",&m);
    27         int cnt=0;
    28         int l,r;
    29         int num=0;
    30         while(scanf("%d%d",&l,&r)!=EOF)
    31         {
    32             if(l==0&&r==0) break;
    33             if(l>m||r<0) continue;
    34             p[cnt].id=num;
    35             p[cnt].l=l;
    36             p[cnt++].r=r;
    37         }
    38         sort(p,p+cnt);
    39         bool flag1=false;
    40         int ll=0,rr=0;
    41         while(1)
    42         {
    43             if(ll>=m)
    44             {
    45                 break;
    46             }
    47             flag1=false;
    48             rr=0;
    49             int pos;
    50             for(int i=0; i<cnt; i++)
    51             {
    52                 if(p[i].l<=ll&&p[i].r>rr)
    53                 {
    54                     pos=i;
    55                     rr=p[i].r;
    56                     flag1=true;
    57                 }
    58             }
    59             if(flag1)
    60             {
    61                t1++;
    62                ans[t1]=p[pos];
    63                ll=rr;
    64             }
    65             else break;
    66         }
    67         if(flag1)
    68         {
    69             printf("%d
    ",t1);
    70             for(int i=1; i<=t1; i++)
    71             {
    72                 printf("%d %d
    ",ans[i].l,ans[i].r);
    73             }
    74         }
    75         else printf("0
    ");
    76     }
    77     return 0;
    78 }
    View Code
  • 相关阅读:
    D. Babaei and Birthday Cake--- Codeforces Round #343 (Div. 2)
    Vijos P1389婚礼上的小杉
    AIM Tech Round (Div. 2) C. Graph and String
    HDU 5627Clarke and MST
    bzoj 3332 旧试题
    codeforces 842C Ilya And The Tree
    codesforces 671D Roads in Yusland
    Travelling
    codeforces 606C Sorting Railway Cars
    codeforces 651C Watchmen
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4020537.html
Copyright © 2011-2022 走看看