c c 演算法之貪心與DP

2021-06-14 16:44:10 字數 988 閱讀 2019

題目背景: 那一年,這一年,青春散場,到畢業季,我們奔波著忙著找工作,來到招聘會上,看到黑壓壓的一大片人群.. 題目描述:畢業季,很多大公司來學校招聘,招聘會分散在不同時間段,小明想知道自己最多能完整的參加多少個招聘會(參加乙個招聘會的時候不能中斷或離開)。 假設現在有n個招聘會,每個招聘會都有個起止時間,時間由從招聘會第一天0點開始的小時數表示,n <= 1000 。 返回:最多參加的招聘會的個數n。 舉個例子: 現在有3場招聘會,他們的起始時間為: 9-10 10-20 8-15 返回:2

這是英雄會的乙個挑戰題

#include #include #include #include #include using namespace std;

bool cmp(const pair&tmpa,const pair&tmpb )

{ if (tmpa.second> &time)

{ sort(time.begin(),time.end(),cmp);

//返回能參加的招聘個數的數值n

int countnum=0;

int endnum=-1;

int sizenum=time.size();

for (int i=0;i&tmpa,const pair&tmpb)

{ if (tmpa.second> timepair;

pairnum1(2,8);

pairnum2(3,4);

pairnum3(2,5);

pairnum4(5,8);

pairnum5(8,20);

timepair.push_back(num4);

timepair.push_back(num1);

timepair.push_back(num2);

timepair.push_back(num3);

timepair.push_back(num5);

int num=forjob(timepair);

cout<

C C 演算法分析與設計 貪心(過橋問題)

在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,他們一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,每人所需要的時間分別是a1 a2 an分鐘 而如果兩人同時過橋,所需要的時間就是走得比較慢的那個人單獨行...

C C 演算法分析與設計 貪心(整數配對)

江鳥想到乙個有趣的問題 給你n個正整數,你可以將這n個整數按兩個一組的方式成對劃分,當然其中的元素也可以不和其他元素配對劃分。現在的問題是,讓劃分為一對的元素的乘積與未配對的元素相加求和,並且讓和最大。比如 考慮這個集合,如果我們讓 分別成一對,那麼得到的和為 1 4 0 3 2 5 15,當然這不...

演算法設計與分析之貪心法

貪心法總是做出在當前看來最好的選擇,一旦做出了選擇,不管將來有什麼結果,這個選擇都不會改變。也就是說貪心法並不從整體最優考慮,它所作出的選擇只是在某種意義上的區域性最優選擇。當然,希望貪心法得到的最終結果也是整體最優的。雖然貪心法不能對所有問題都得到整體最優解,但對許多問題它能產生整體最優解。幾點說...