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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

笨蛋的难题(二)

發布時間:2025/3/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 笨蛋的难题(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
笨蛋就業了,并且是在上千應聘中脫穎而出的,和他一起脫穎而出的還有傻子。公司的老板對二人視為珍寶,為了激勵他們的工作熱情,給他們一小時發一次工資(很高興吧)。但每次只發給一個人,并且每次發的工資可能不同(老板很厲害吧)。傻子和笨蛋為了證明自己比對方智商高,他們事先知道每次發的工資的多少。他們暗中達成協議:他們不是將工資平分,而是輪流領取。該領工資的人可以選擇跳過一個或多個小時的工資,而領取后面的工資。跳過的工資會捐給孤兒院。他們只管自己獲得最大利益,不管對方獲得的利益如何,每次笨蛋先領。比如 100, 100, 800, 70, 150 ,100。笨蛋第一個小時不領,第二個小時也不領,直接領第三個小時發的工資,傻子領第四個小時發的工資,笨蛋再領第五個小時發的工資,傻子再領第六個小時發的工資,這樣笨蛋領到950元的工資,傻子領到170元的錢,其余的全部捐給孤兒院為200元。

Input

多組測試數據
第一行輸入t,表示共發t個小時的工資(0<t<120)
接下來一行是t個數表示t小時內每個小時的工資Money(0<money<10000)

Output

三個數字M,N,V
他們分別表示笨蛋領的工資,傻子領的工資,還有捐給孤兒院的錢

Sample Input

6 100 100 800 70 150 100 3 100 100 100

Sample Output

950 170 200 200 100 0 利用dp和貪心的思想;

AC代碼:

#include<iostream> #include<cstdio> #include<cmath> using namespace std; int main() {int t,sum;int M,N,V;int i,j;int dp[130];while(cin>>t){sum=0;for(i=0;i<t;i++){cin>>dp[i];sum+=dp[i];}M=N=0;for(i=t-1;i>-1;i--){if(dp[i]+M>=N){ //輪換選取最大值,滿足條件更新 V=N;N=dp[i]+M;M=V;}}cout<<N<<" "<<M<<" "<<sum-M-N<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的笨蛋的难题(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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