題目大意:
有若干房間,奇數房間在偶數房間的對面,共用一條走廊,從乙個房間搬運桌子到另乙個房間,如果房間之間共用同乙個走廊,則不能同時進行,搬運以此需要10,求最短時間;
解題思路:
首先對房間按照開始房間號進行排序,在進行化簡,1號和二號房間共用同乙個走廊,開始房間和結束房間加一除二為走廊,搬桌子可以並行執行,遇到衝突需要分別執行,記錄衝突最多的走廊為所求結果;
**:
#include #includeusing
namespace
std;
struct
mms[
401];
bool
cmp(mm m,mm n)
intmain()
s[i].a=(s[i].a+1)/2
; s[i].b=(s[i].b+1)/2
;
for(j=s[i].a;j<=s[i].b;j++)
max[j]++;
}for(i=0;i<200;i++)
cout
<10
<}
return0;
}
貪心演算法 Problem A 1000
1 最後經查資料得 erase 對於vector來說返回值是下乙個位置的迭代器,而對於map和set返回值是void,即當某迭代器指向的位置erase 後,原迭代器失效。可以採用後加,即map.erase iterator 的方式既刪除了所指向的內容,又使得迭代器指向了下乙個位置。2 問題要分析完整...
經典貪心演算法 貪心演算法概述
貪心演算法具有最優子問題結構,它的特點是 短視 每次選擇對當前局面最有利的決策,來一步步獲得最優解。我個人認為,貪心不是乙個具體的方法,而是一類方法,貪心演算法的關鍵不在於想到,而在於正確性的證明。要證明乙個貪心演算法是正確的,需要證明我們可以把乙個最優解逐步轉化為我們用貪心演算法所得到的解,而解不...
演算法 貪心演算法
把乙個複雜問題分解為一系列較為簡單的區域性最優選擇,每乙個選擇都是對當前解的乙個擴充套件,知道獲得問題的完整解。在解決問題的策略上目光短淺,只根據當前已有的資訊做出選擇,而且一旦做出了選擇,不管將來有什麼結果這個選擇都不會改變。換言之,貪心法並不是從整體最優考慮,它所做出的選擇只是在某種意義上的區域...