貪心 活動安排問題2

2022-05-01 23:30:23 字數 997 閱讀 4383

題目大意:

有若干個活動,第i個開始時間和結束時間是[si,fi),同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?

解題關鍵:策略: 按照開始時間排序優先安排活動,如果衝突,則加乙個教室。

1、利用優先佇列

1 #include2

#define inf 0x3f3f3f3f

3using

namespace

std;

4 typedef long

long

ll;5

string

s;6 pairpp[10002];7

int a[26];8

bool flag[10002];9

intmain()

16 sort(pp+1,pp+n+1

);17 q.push(pp[1

].second);

18for(int i=2;i<=n;i++)else26}

27 printf("

%d\n

",count);

28return0;

29 }

2、求線段相交的次數

1 #include2

using

namespace

std;

3 typedef long

long

ll;4 vectorint,int> >event

; 5

intmain()

14 sort(event.begin(),event

.end());

15int cnt=0,ans=0

; 16

for(int i=0;i

20 printf("

%d\n

",ans);

21return

0;

22 }

貪心 活動安排問題

貪心演算法得到的並不一定是問題的整體最優解。但在這個問題中,貪心演算法最終確定的相容活動集合a的規模最大。描述 11件活動,各自有不同的開始和結束時間。求在所給活動的集合眾選出最大的相容活動子集合。include using namespace std bool a 11 int s 11 int ...

活動安排問題 貪心

有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?input 第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,小於10000...

貪心 活動安排問題

活動安排問題就是要在所給的活動集合中選出最大的相容活動子集合,是可以用貪心演算法有效求解的很好例子。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心演算法提供了乙個簡單 漂亮的方法使得盡可能多的活動能相容地使用公共資源。設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同...