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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nyoj 720 项目安排(dp+二分优化)

發布時間:2025/3/16 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nyoj 720 项目安排(dp+二分优化) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目安排

時間限制:3000?ms ?|? 內存限制:65535?KB 難度:4 描述
小明每天都在開源社區上做項目,假設每天他都有很多項目可以選,其中每個項目都有一個開始時間和截止時間,假設做完每個項目后,拿到報酬都是不同的。由于小明馬上就要碩士畢業了,面臨著買房、買車、給女友買各種包包的鴨梨,但是他的錢包卻空空如也,他需要足夠的money來充實錢包。萬能的網友麻煩你來幫幫小明,如何在最短時間內安排自己手中的項目才能保證賺錢最多(注意:做項目的時候,項目不能并行,即兩個項目之間不能有時間重疊,但是一個項目剛結束,就可以立即做另一個項目,即項目起止時間點可以重疊)。 輸入
輸入可能包含多個測試樣例。
對于每個測試案例,輸入的第一行是一個整數n(1<=n<=5000):代表小明手中的項目個數。
接下來共有n行,每行有3個整數st、ed、val,分別表示項目的開始、截至時間和項目的報酬,相鄰兩數之間用空格隔開。
st、ed、value取值均在32位有符號整數(int)的范圍內,輸入數據保證所有數據的value總和也在int范圍內。
輸出
對應每個測試案例,輸出小明可以獲得的最大報酬。
樣例輸入
3 1 3 6 4 8 9 2 5 16 4 1 14 10 5 20 15 15 20 8 18 22 12
樣例輸出
16 22
提示

上傳時數據加強,項目起始時間和終止時間可能相同(其他oj可能無此情況)



解題思路:

這個題很想之前做的會場安排問題,利用貪心求解,但這里需要考慮到花費,所以貪心并不能找到最優的。這里采用的是動態規劃的思想,由于每個項目是按照時間來的,所以我們先將項目都按照結束時間排序,相同則按照開始時間小的排序。

首先講下為什么要這么排序,其實這樣是可以幫助我定義狀態,dp[i]表示做完前i個項目所需要的最大價值。如果我們要表示做完這個項目,很明顯的就是要找這個項目做完的時間。接下來就是如何找到在這個項目開始前所做的項目呢?我們可以這么思考,比這個項目更早的時間做完,那么它們的結束時間肯定當前這個項目的開始時間要小,這樣我們就可以找到所有符合要求的項目了。

如果這里用枚舉肯定會超時,可以采用二分優化,因為我們已經將項目排好序了,符合單調性。

只不過這里的提示糾結了好久,它說可能起始時間和終止時間相同,我在想會不會有多個項目是用一個時間段,然后我又想了去重,結果超時了。。最后把去重的函數去掉就A了。。


AC:

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std;const int maxn = 5005; struct Node {int st,ed,val;bool operator < (const Node &rhs) const{if(st == rhs.st && ed == rhs.ed) return val > rhs.val;else if(ed == rhs.ed) return st < rhs.st;return ed < rhs.ed;} }p[maxn]; int n,dp[maxn];int search(int l,int r,int key) {int mid,ans = 0;while(l <= r){mid = (l + r) >> 1;if(p[mid].ed <= key){ans = mid;l = mid + 1;}else r = mid - 1;}return ans; }int main() {while(scanf("%d",&n)!=EOF){for(int i = 1; i <= n; i++)scanf("%d %d %d",&p[i].st,&p[i].ed,&p[i].val);sort(p+1,p+1+n);dp[1] = p[1].val;for(int i = 2; i <= n; i++){dp[i] = max(p[i].val,dp[i-1]); //只做這個項目,不做這個項目int k = search(1,i-1,p[i].st);dp[i] = max(dp[i],dp[k] + p[i].val);}printf("%d\n",dp[n]);}return 0; }


總結

以上是生活随笔為你收集整理的nyoj 720 项目安排(dp+二分优化)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色伊人网 | 男插女在线观看 | 日日躁夜夜躁白天躁晚上躁91 | 三级视频网站在线观看 | www.av72 | 午夜av一区二区三区 | 日本一本在线 | 成熟妇人a片免费看网站 | 暖暖日本在线 | 成人中文字幕在线观看 | 成年人视频在线免费观看 | 成人在线视频免费 | 欧美人与性禽动交精品 | 久久韩日 | 成人亚洲网 | 国产群p视频| 亚洲av成人无码久久精品 | 久热精品在线观看视频 | 色综合图片区 | 欧美高清性| 91超碰免费 | 粉嫩av| 龚玥菲三级露全乳视频 | 美女精品久久 | 香蕉钻洞视频 | 黄色精品在线观看 | 日本成人午夜 | 999热视频 | 精品日韩在线播放 | 国产情侣酒店自拍 | 四虎精品久久 | 美女无遮挡免费网站 | 欧美日韩一区二区三区在线电影 | 在线观看国产欧美 | 欧美一级做a爰片久久高潮 久热国产精品视频 | 免费观看黄色 | 青青青在线免费观看 | 干爹你真棒插曲mv在线观看 | 国产一区二区小视频 | 很黄很污的视频 | 久久久97 | 操穴网站| 闷骚老干部cao个爽 av九九九 | 精品视频免费 | 欧美精品一线 | 可以免费看黄的网站 | 原神淫辱系列同人h | 免费观看成年人视频 | 影音先锋中文字幕在线播放 | 亚洲欧洲日本精品 | 欧美黄色一级大片 | 成人黄色在线播放 | 亚洲乱码在线观看 | 四季av一区二区夜夜嗨 | 91高清网站 | 美女网站免费观看视频 | 欧美精品在线视频观看 | 欧美黄色免费大片 | 日韩人妻无码精品久久免费 | 黄色大片日本 | 国产精品久久久久久亚洲伦 | 黄色茄子视频 | 丰满岳乱妇一区二区三区 | 国产精品国产馆在线真实露脸 | 欧美第九页 | 台湾性dvd性色av | 国产福利资源在线 | 久久尤物视频 | 特a级黄色片 | 波多野结衣啪啪 | 丝袜+亚洲+另类+欧美+变态 | 搞中出| 一区二区三区四区精品 | 亚洲国产一区二区在线观看 | 特级西西444www大胆免费看 | 国产大片aaa| 婷婷狠狠爱 | 丝袜视频在线观看 | 日韩欧美一区二区一幕 | 91精品国产91久久久久 | 美女视频国产 | 国产精品黄色片 | 免费看日韩av | 香蕉一区二区三区四区 | 天天久久综合 | 亚洲三级免费观看 | 久久看av| 亚洲经典在线观看 | 精品视频在线观看一区二区 | 粉嫩av一区二区三区天美传媒 | 美女干b视频 | 国产欧美精品一区二区色综合朱莉 | 国产婷婷在线视频 | 年下总裁被打光屁股sp | 男女作爱免费网站 | 国产三级av片 | 大乳丰满人妻中文字幕日本 | 欧美大片视频在线观看 | 黄色爱爱视频 |