貪心-*活動選擇
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
輸出最佳安排序列所包含的各個活動(按照活動被安排的次序,兩個活動之間用逗號分隔)。
Sample Input
6 8 10 9 16 11 16 14 15 10 14 7 11
Sample Output
1,5,4
#include<stdio.h>
#include<string.h>
struct node{
int start;
int end;
int select;
int id;
}a[100],temp;
int main(){
int b;
scanf("%d",&b);
for(int i = 0 ; i < b ; i++){
scanf("%d %d",&a[i].start,&a[i].end);
a[i].id = i + 1;
a[i].select = 0;
}
for(int i = 0 ; i < b - 1;i++){
for(int j = 0 ; j < b - i - 1;j++){
if(a[j].end > a[j+1].end){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
int s = 0;
for(int i = 0 ; i < b ;i++){
if(a[i].start >= s){
a[i].select = 1;
s = a[i].end;
}
}
printf("%d",a[0].id);
for(int i = 1 ; i < b ; i++){
if(a[i].select == 1){
printf(",%d",a[i].id);
}
}
printf("\n");
return 0;
}
相關文章
- 活動選擇問題理解貪心演算法演算法
- 貪心
- 淺談貪心與動歸
- 反悔貪心
- Supermarket(貪心)
- 放置RPG暗流湧動,心動選擇搶灘登陸
- 貪心例題
- 貪心+搜尋
- bzoj2426: [HAOI2010]工廠選址(貪心)
- LeetCode:動態規劃+貪心題目整理LeetCode動態規劃
- HDU - 6003 Problem Buyer題解(貪心選擇演算法,鴿巢原理,優先佇列維護)演算法佇列
- 反悔貪心雜題
- 貪心演算法演算法
- 貪心、構造合集
- HDU 5821 Ball(貪心)
- 貪心模式記錄模式
- 是什麼讓巨人、蘋果、心動選擇了《帕斯卡契約》蘋果
- Java ArrayList 與 LinkedList 的靈活選擇Java
- 「貪心」做題記錄
- [反悔貪心] Add One 2
- 貪心 做題筆記筆記
- 7.5 - 貪心篇完結
- 貪心演算法Dijkstra演算法
- 24/03/20 貪心(一)
- HDU 6047 Maximum Sequence (貪心)
- HDU 5813 Elegant Construction (貪心)Struct
- 漲薪【貪心】【快速冪】
- Leetcode 貪心:差值調整LeetCode
- Least Cost Bracket Sequence(貪心)ASTRacket
- 刪數問題(貪心)
- 牛客 tokitsukaze and Soldier 貪心
- 貪心-刪數問題
- 瞄準戰棋頭部,心動選擇在品質上捲到底
- 學一下貪心演算法-學一下貪心演算法演算法
- 貪心演算法(貪婪演算法,greedy algorithm)演算法Go
- 9-貪心演算法演算法
- 【貪心】POJ 3617:Best Cow Line
- Moving Tables(貪心演算法)演算法