程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> POJ2573 Bridge 經典的過橋問題

POJ2573 Bridge 經典的過橋問題

編輯:關於C++

以前遇到過類似的,紀念一下!這題同時也是 ZOJ1877,經典的過橋問題 是有個博客講解的很好的

戳這裡


挺久以前,遇到過一個基本一樣的,那個題目只要求求出 最短時間即可,現在還有過橋的過程 也要輸出來,一樣的

最近也遇到過一個 類似的過河的,不過題意類似,是DP的, 記得是 CF295C


還記得當初做那道題目 鑽入牛角,首先1個人2個人3個人肯定不用說了,當人數大於4的時候,那時候 我想出的貪心策略是 最快的 帶最慢的過去,然後回來,再帶最慢的過去,當時WA到死,那題案例出的也好,後來發現 其實還有一種貪心策略在某種情況下 比這個好,就是 最快 次快的過去,然後最快的回來。然後最慢次慢的過去,然後次快的再回來,這兩個情況沒有絕對的誰優,所以 每次都比較一下,這樣題目就簡單多了,草稿紙一些 兩種方法的計算方式就出來了


假設最快a,次快b,次慢c,最慢d

那麼 第一種 d + a + c + a

第二種 b + a + d + b


很快就做出來了


int n;

int nnum[1000 + 55];

void init() {
	memset(nnum,0,sizeof(nnum));
}

bool input() {
	while(cin>>n) {
		for(int i=0;i>nnum[i];
		return false;
	}
	return true;
}

void solve() {

}

void cal() {
	sort(nnum,nnum + n);
	if(n == 1) {
		cout<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved