日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UVa 10026 - Shoemaker's Problem

發(fā)布時(shí)間:2023/11/29 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVa 10026 - Shoemaker's Problem 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  題目大意:鞋匠有n個(gè)任務(wù),第i個(gè)任務(wù)要花費(fèi)ti天,同時(shí)第i個(gè)任務(wù)每耽誤一天要有fi的罰金。求完成所有任務(wù)的最小罰金。

  雖然知道是貪心,可是并不確定如何作貪心選擇,只好“取經(jīng)”了...假如有兩個(gè)任務(wù)i和j,先做i的話罰金就是ti*fj,先做j的話就是tj*fi (其實(shí)我也想到這個(gè)了,就是不知道怎么用),可以得到f/t大的任務(wù)應(yīng)該先做。對貪心有多了一點(diǎn)認(rèn)識(shí)了,貪心做出當(dāng)前情況下的最好選擇,與子問題無關(guān),而動(dòng)態(tài)規(guī)劃中做出的選擇與子問題有關(guān)系,要依賴子問題的結(jié)果。

1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 #define MAXN 1000+10 5 6 double w[MAXN]; 7 int ans[MAXN]; 8 9 bool cmp(const int a, const int b) 10 { 11 return w[a] > w[b]; 12 } 13 14 int main() 15 { 16 #ifdef LOCAL 17 freopen("in", "r", stdin); 18 #endif 19 int N; 20 scanf("%d", &N); 21 while (N--) 22 { 23 int n; 24 scanf("%d", &n); 25 int time, fine; 26 for (int i = 1; i <= n; i++) 27 { 28 scanf("%d%d", &time, &fine); 29 w[i] = 1.0 * fine / time; 30 } 31 for (int i = 1; i <= n; i++) ans[i] = i; 32 sort(ans+1, ans+n+1, cmp); 33 for (int i = 1; i <= n; i++) 34 printf("%d%s", ans[i], (i==n)?"\n":" "); 35 if (N) printf("\n"); 36 } 37 return 0; 38 } View Code

  如果有多個(gè)方案時(shí)要字典序輸出,考慮到sort函數(shù)是不穩(wěn)定的,感覺會(huì)出錯(cuò),但還是抱著試試的態(tài)度提交了,想著如果WA了就換stable_sort,但是竟然AC了...這個(gè)...先不管了,先就這樣吧

轉(zhuǎn)載于:https://www.cnblogs.com/xiaobaibuhei/p/3226776.html

總結(jié)

以上是生活随笔為你收集整理的UVa 10026 - Shoemaker's Problem的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。