任务选择问题(贪心算法)
来源:互联网 发布:模拟人生4捏脸数据 编辑:程序博客网 时间:2024/05/01 17:22
题目描述
今天Ckp打算去约会。大家都知道Ckp是超级大帅哥,所以和他约会的MM也超级多,她们每个人都和Ckp订了一个约会时间。但是今天Ckp刚打算出门的时候才发现,某几个MM的约会时间有冲突。由于Ckp不会分身,还不能和多个MM同时约会,他只能忍痛割爱拒绝掉某些MM。但是Ckp这个花心大萝卜还是不死心,他想知道,他最多可以和多少个MM约会。
输入
输入的第一行包含一个正整数N(0<N<=1000),表示和Ckp约会的MM数。
接下去N行,每行描述一个MM,格式为: Name starttime endtime,表示在[starttime,endtime)这个半开区间是这个MM的约会时间,starttime < endtime。名字由大写或小写字母组成,最长不超过15个字母,保证没有两个人拥有相同的名字,所有时间采用24小时制,格式为XX:XX,且在06:00到23:00之间。
输出
输出的第一行是一个整数M表示Ckp最多可以和多少个MM约会。
接下来那一行就是M个MM的名字,用空格隔开。您可以按照任意的顺序输出。如果存在多个答案,您可以任选一个输出。
样例输入
4
Lucy 06:00 10:00
Lily 10:00 17:00
HanMeimei 16:00 21:00
Kate 11:00 13:00
样例输出
3
Lucy Kate HanMeimei
#include#include #include #define N 1001using namespace std;typedef struct MM{ char name[N]; char start[N]; char endt[N];};MM mm[N];void QuickSort(MM a[], int s, int t){ int i=s, j=t; MM temp; if(s i&&strcmp(a[j].endt,temp.endt)>=0) j--; strcpy(a[i].name,a[j].name); strcpy(a[i].start,a[j].start); strcpy(a[i].endt,a[j].endt); while(i >M; getchar(); for(int i=0; i >mm[i].name>>mm[i].start>>mm[i].endt; QuickSort(mm,0,M-1); int n=0; n++; for(int i=1,j=0; i =0) { n++; j=i; } cout< =0) { cout<
0 0
- 任务选择问题(贪心算法)
- 任务选择问题(贪心)
- 贪心算法活动选择问题
- 贪心算法---活动选择问题
- 贪心算法-活动选择问题
- 贪心算法--活动选择问题
- 贪心算法-活动选择问题
- 活动选择问题(动态规划算法和贪心算法)
- 活动选择问题(算法导论第十六章贪心算法)
- 算法导论程序40--贪心算法(活动选择问题)
- 算法学习(贪心算法一)活动选择问题
- 贪心算法实例(一):多任务分配问题
- 活动选择问题(动态规划和贪心算法)
- 活动选择问题(贪心算法vs动态规划)
- 算法——硬币选择问题(dp、贪心)
- 贪心算法解决活动选择问题
- 贪心算法之活动选择问题
- 贪心算法之活动选择问题
- JAVA——Scanner类
- CentOS7中systemctl命令详解
- 二维数组的定义(动态初始化、静态初始化)、初始化格式及其操作、java中的参数传递方式,面向对象的基本概念
- php冒泡排序详解笔记
- Rserve 实现java与R的互通
- 任务选择问题(贪心算法)
- G
- 简单的实现自定义广播(Broadcast)机制
- fscanf 读入4096行数据
- linux基本指令
- 小学数学
- JAVA——String类
- ssl讲解
- 爬新浪国内新闻网的某个新闻的评论