UVA 11729 簡單貪心

2021-10-03 16:36:33 字數 842 閱讀 5912

新增鏈結描述

結論:根據完成的時間排序。

證明:假設交代任務時間為a,完成任務時間為b。選取n個人之中的兩個人進行觀察,這兩個人之間的順序對其他人不產生影響,假設b1 > b2,當b1在前面的時候,二者為max1(a1+a2+b2,a1+b1),當b1在後面的時候max2(a2+b2,a1+a2+b1),因為b1 > b2,觀察max2(a2+b2,a1+a2+b1) = a1 + a2 + b1,顯然其與max1中的兩項比較,a1 + a2 + b1 > a1 + a2,a1 + a2 + b1 >a1 + b1,當二者順序不同的時候,max1 < max2 , 顯然 max1 更優 ,即應該是完成任務時間長的在前面。

附上 vegetable 的**。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef pair<

int,

int> pii;

const

int n=

1010

;int n;

struct node

}a[n]

;int

main()

printf

("case %d: %d\n"

,t++

,ans);}

return0;

}

uva 11729 貪心 STL 應用

這道題沒有什麼難度 只需要建立乙個結構體 存當前部下的任務交待時間和執行任務所消耗的時間就行 之後按執行任務消耗時間的從大到小排序 如果消耗時間相等 就讓所用交代時間短的排在前面 讓消耗時間多的先執行 利用貪心 完成 其實題目沒有什麼難度 主要是 學會應用的stl容器的vector 下面貼出 inc...

uva11729(貪心,藍書第2頁)

想了想,這個貪心畢竟把我給騙到了,所以還是寫個題解。不難發現,最後無論怎樣都至少需要付出sigma b i 的時間 而影響最終時間的,只有j i 而已,而最佳的方法當然是時間 長的先交代,當然,這只是感覺而已,證明見藍書吧。這些貪心的分析方法就一種,貪心大總結裡面有。code include inc...

UVA11729突擊戰(匯報和執行任務)

題意 你是乙個長官,有一些士兵要跟你先匯報任務後在去執行任務,每次只能接受乙個人的匯報,但是每一時刻可以有多個士兵在執行任務,問所有任務執行完要的最小時間。思路 按執行任務時間從大到小排序來執行就行了,至於為什麼貪心的策略是這個我是這麼想的,首先任何乙個人執行任務的順序都不會影響他的匯報和幹活時間,...