Poj2586 每五个月都是亏
生活随笔
收集整理的這篇文章主要介紹了
Poj2586 每五个月都是亏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目大意:
MS公司(我猜是微軟)遇到了千年蟲的問題,導致數據大量數據丟失。比如財務報表?,F在知道這個奇特的公司每個月不是盈利就是虧損(廢話),而且無論是盈利和虧損都有一個定值(虧少了它還不干
)。經過ACM組織的分析,在一年中任意連續的5個月,它都是虧損的,但是全年就不一定虧損了。現在給你盈利和虧損的定值s和d,請求出它一年能得到的最大利潤!如果虧了,就輸出Deficit!
貪心:
每五個連續的月一定虧損,我們可以設每五個月虧損月數最少為x,這種情況下,如果x能保證讓這五個月為虧損,這是滿足題意的盈利最大值!
x只能為1,2,3,4,5。
在保證連續5個月都虧損的前提下,使得每5個月中虧損的月數最少。根據d和s的不同五種情況 x=1: ssssd,ssssd,ss d>4s 贏利10個月 10s-2dx=2: sssdd,sssdd,ss 2d>3s 贏利8個月 8s-4dx=3: ssddd,ssddd,ss 3d>2s 贏利6個月 6s-6d x=4: sdddd,sdddd,sd 4d>s 贏利3個月 3s-9d //注意這里有個例外x=5: ddddd,ddddd,dd 4d<s 無贏利 注意:0也算是盈利
#include<iostream> using namespace std; int main() {int sum;int s, d;while (cin >> s >> d){if (4 * s < d){sum = s * 10 - d * 2;}else if (3 * s <2* d){sum = s * 8 - d * 4;}else if (2 * s <3 * d){sum = s * 6 - d * 6;}else if ( s <4 * d){sum = s * 3 - d * 9;//注意這里有個例外 }else{sum = -1;}if (sum >= 0){cout << sum << endl;}else{cout << "Deficit" << endl;}} }
MS公司(我猜是微軟)遇到了千年蟲的問題,導致數據大量數據丟失。比如財務報表?,F在知道這個奇特的公司每個月不是盈利就是虧損(廢話),而且無論是盈利和虧損都有一個定值(虧少了它還不干
)。經過ACM組織的分析,在一年中任意連續的5個月,它都是虧損的,但是全年就不一定虧損了。現在給你盈利和虧損的定值s和d,請求出它一年能得到的最大利潤!如果虧了,就輸出Deficit!
貪心:
每五個連續的月一定虧損,我們可以設每五個月虧損月數最少為x,這種情況下,如果x能保證讓這五個月為虧損,這是滿足題意的盈利最大值!
x只能為1,2,3,4,5。
在保證連續5個月都虧損的前提下,使得每5個月中虧損的月數最少。根據d和s的不同五種情況 x=1: ssssd,ssssd,ss d>4s 贏利10個月 10s-2dx=2: sssdd,sssdd,ss 2d>3s 贏利8個月 8s-4dx=3: ssddd,ssddd,ss 3d>2s 贏利6個月 6s-6d x=4: sdddd,sdddd,sd 4d>s 贏利3個月 3s-9d //注意這里有個例外x=5: ddddd,ddddd,dd 4d<s 無贏利 注意:0也算是盈利
#include<iostream> using namespace std; int main() {int sum;int s, d;while (cin >> s >> d){if (4 * s < d){sum = s * 10 - d * 2;}else if (3 * s <2* d){sum = s * 8 - d * 4;}else if (2 * s <3 * d){sum = s * 6 - d * 6;}else if ( s <4 * d){sum = s * 3 - d * 9;//注意這里有個例外 }else{sum = -1;}if (sum >= 0){cout << sum << endl;}else{cout << "Deficit" << endl;}} }
?
? ?轉載于:https://www.cnblogs.com/Strugglinggirl/p/6098033.html
總結
以上是生活随笔為你收集整理的Poj2586 每五个月都是亏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python leetcode_leet
- 下一篇: java如何防止sql注入