活動安排
阿新 • • 發佈:2018-07-24
結束時間 ++ 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; }
活動安排