1. 程式人生 > >活動安排

活動安排

結束時間 ++ name 有一個 true ret 提示 區間 其中

題目描述

設有n個活動的集合E={1,2……n},其中每個活動都要求使用同一資源。而在同一時間內只有一個活動能使用這一資源。每個活動i都有一個要求使用該資源的起始時間si和一個結束時間fi。且si<fi。如果選擇了活動i,則它在時間區間[si,fi)內占用資源。若區間[si,fi)與區間[sj,fj)不相交,則兩活動是相容的。選擇出相互兼容的活動組成的最大集合。

輸入

輸出

樣例輸入

207
45 81
968 1955
438 515
766 1740
579 933
102 240
79 279
814 1413
566 1032
430 796
368 1024
595 1202
974 1951
152 335
407 653
757 1286
355 1240
102 451
590 1147
122 775
801 1078
430 1249
334 565
160 1071
545 1153
159 626
244 1028
28 480
679 1348
887 1120
637 919
3 533
935 1295
9 47
56 293
63 376
346 630
729 1467
946 1805
845 1447
951 1198
351 673
758 1354
651 1098
194 805
903 1062
411 1194
211 1022
853 1191
962 1511
315 745
768 1520
819 1647
894 1505
221 977
764 1047
524 1332
823 900
4 145
431 724
140 604
248 980
727 1268
335 1277
447 877
597 1323
762 1661
6 500
878 1613
391 417
170 948
9 391
65 68
123 483
927 1217
208 603
894 1202
328 687
998 1441
467 948
14 300
41 635
621 860
714 919
61 204
107 276
880 1273
798 1611
28 440
121 787
254 369
35 220
811 1088
615 622
724 1690
669 1189
865 1614
833 1376
543 1123
290 1044
969 1665
848 1702
19 515
600 1589
126 521
287 323
938 1206
228 1182
970 1108
650 1481
848 1321
174 780
428 966
224 878
518 884
239 440
230 1048
932 1072
455 1342
458 608
171 677
980 1651
393 1281
599 1212
266 632
252 1010
466 1142
927 1076
701 1568
816 1340
752 1183
474 668
747 1517
961 1378
489 1090
741 1571
920 1465
670 1593
924 940
38 139
438 1279
740 1480
32 810
846 990
993 1377
550 1268
891 1751
178 1087
828 1516
899 1368
16 754
795 1045
941 1227
546 1132
707 744
94 299
294 325
879 1445
655 938
390 491
625 1509
33 920
523 536
548 1333
711 1015
650 1465
995 1123
436 628
145 528
162 343
934 1119
848 1048
889 1270
76 272
505 1445
541 751
511 834
633 1292
930 1833
303 730
455 755
431 997
354 1170
480 521
658 1476
426 760
329 1123
410 797
613 1354
374 1004
130 425
195 876
638 975
44 770
859 1757
139 775
608 783
928 1195
280 828
45 998
703 957
571 1058
457 781
272 750
60 153
20 873
391 530

樣例輸出

12

提示

#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
    int x,y;
     
}a[10005];
bool cmp(node a,node b)
{
if(a.y==b.y)
return a.x<b.x;
    return a.y<b.y;
}
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>a[i].x>>a[i].y;
    sort(a,a+n,cmp);
    int ans=1;
    int t=a[0].y;
    for(int i=1;i<n;i++)
    {
        if(a[i].x>=t)
        {
            ans++;
            t=a[i].y;
        }
    }
    cout<<ans<<endl;
}

  

活動安排