【贪心】活动选择
来源:互联网 发布:lol显示网络连接异常 编辑:程序博客网 时间:2024/06/05 01:01
活动选择
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
学校的大学生艺术中心周日将面向全校各个学院的学生社团开放,但活动中心同时只能供一个社团活动使用,并且每一个社团活动开始后都不能中断。现在各个社团都提交了他们使用该中心的活动计划(即活动的开始时刻和截止时刻)。请设计一个算法来找到一个最佳的分配序列,以能够在大学生艺术中心安排不冲突的尽可能多的社团活动。
比如有5个活动,开始与截止时刻分别为:
最佳安排序列为:1,4,5。
Input
第一行输入活动数目n(0<n<100);
以后输入n行,分别输入序号为1到n的活动使用中心的开始时刻a与截止时刻b(a,b为整数且0<=a,b<24,a,b输入以空格分隔)。
Output
输出最佳安排序列所包含的各个活动(按照活动被安排的次序,两个活动之间用逗号分隔)。
Example Input
6
8 10
9 16
11 16
14 15
10 14
7 11
Example Output
1,5,4
Hint
Author
#
include <iostream>using namespace std;struct A{ int a; int b; int num;};int main(){ int n,a,b; cin>>n; int markhh=1; int hh[100]={0}; A* H=new A[n+1]; for(int i=1;i<=n;i++) { cin>>H[i].a>>H[i].b; H[i].num=i; } A tmp; for(int i=1;i<=n;i++) { for(int j=n;j>i;j--) { if(H[j-1].b>H[j].b) { tmp=H[j-1]; H[j-1]=H[j]; H[j]=tmp; } } } hh[1]=H[1].num; int tail=H[1].b; int i=2; while(i<=n) { if(H[i].a>=tail) { tail=H[i].b; markhh++; hh[markhh]=H[i].num; } i++; } for(int k=1;k<=markhh;k++) { if(k!=markhh) cout<<hh[k]<<","; else cout<<hh[k]; } return 0;}
阅读全文
0 0
- 贪心算法-活动选择
- 活动选择问题 贪心
- 活动选择 贪心
- 贪心:活动选择问题
- 活动选择(贪心)
- 活动选择问题(贪心)
- 贪心 -- 活动选择
- 贪心之活动选择
- 贪心C 活动选择
- 【贪心】活动选择
- 贪心算法活动选择问题
- 贪心算法---活动选择问题
- 贪心法 活动选择问题
- 贪心算法-活动选择问题
- 2073 活动选择问题【贪心】
- 活动选择问题(贪心)
- 贪心算法--活动选择问题
- 贪心 活动选择问题 OJ
- 前端性能监控
- python采集第一步
- Java循环赋值和循环设置属性问题
- jQuery的callback函数
- HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
- 【贪心】活动选择
- MSP430F149串口收发程序详解
- 如何push一个docker镜像到DockerHub上
- 微信小程序基于node.js的websocket服务器搭建和SSL证书申请、配置全家桶
- Nginx location配置解析
- 171031-自学指针参数,引用参数【连续第八天】
- TreeMap、HashMap、LindedHashMap的区别。
- 【Android 数据库框架总结,总有一个适合你!】
- poj2546—Circular Area(两圆相交面积)