zoukankan      html  css  js  c++  java
  • 【贪心】XMU 1061 Ckp的约会

    题目链接:

      http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1061

    题目大意

      n个任务(n<=1000),给定名字和开始、结束时间,求最多能完成几个任务。

    题目思路:

      【贪心】

      先按照结束时间排序,之后能取就取,最后输出答案。

      

     1 //
     2 //by coolxxx
     3 //
     4 #include<iostream>
     5 #include<algorithm>
     6 #include<string>
     7 #include<iomanip>
     8 #include<memory.h>
     9 #include<time.h>
    10 #include<stdio.h>
    11 #include<stdlib.h>
    12 #include<string.h>
    13 //#include<stdbool.h>
    14 #include<math.h>
    15 #define min(a,b) ((a)<(b)?(a):(b))
    16 #define max(a,b) ((a)>(b)?(a):(b))
    17 #define abs(a) ((a)>0?(a):(-(a)))
    18 #define lowbit(a) (a&(-a))
    19 #define sqr(a) ((a)*(a))
    20 #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
    21 #define eps (1e-8)
    22 #define J 10000000
    23 #define MAX 0x7f7f7f7f
    24 #define PI 3.1415926535897
    25 #define N 1004
    26 using namespace std;
    27 typedef long long LL;
    28 int cas,cass;
    29 int n,m,lll,ans;
    30 bool mark[N];
    31 struct xxx
    32 {
    33     char name[24];
    34     int st,et;
    35 }a[N];
    36 bool cmp(xxx aa,xxx bb)
    37 {
    38     return aa.et<bb.et;
    39 }
    40 int main()
    41 {
    42     #ifndef ONLINE_JUDGE
    43 //    freopen("1.txt","r",stdin);
    44 //    freopen("2.txt","w",stdout);
    45     #endif
    46     int i,j,k;
    47 //    for(scanf("%d",&cas);cas;cas--)
    48 //    for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
    49 //    while(~scanf("%s",s))
    50     while(~scanf("%d",&n))
    51     {
    52         for(i=1;i<=n;i++)
    53         {
    54             scanf("%s",a[i].name);
    55             scanf("%d:%d",&j,&k);a[i].st=(j-6)*60+k;
    56             scanf("%d:%d",&j,&k);a[i].et=(j-6)*60+k;
    57         }
    58         sort(a+1,a+1+n,cmp);
    59         for(i=1,j=0;i<=n;i++)
    60         {
    61             if(a[i].st>=a[j].et)ans++,j=i,mark[i]=1;
    62         }
    63         printf("%d
    ",ans);
    64         for(i=1;i<=n;i++)
    65             if(mark[i])printf("%s ",a[i].name);
    66         puts("");
    67     }
    68     return 0;
    69 }
    70 /*
    71 //
    72 
    73 //
    74 */
    千万不要点
  • 相关阅读:
    自介
    打招呼
    试验四
    作业:实验二
    个人简介
    实验4
    构建之法—心得体会
    作业:实验二
    个人简介
    软件测试第四次博客作业2
  • 原文地址:https://www.cnblogs.com/Coolxxx/p/5736485.html
Copyright © 2011-2022 走看看