貪心算法 problem M(1013)

一.簡明題意

<span style="font-size:12px;">某公司要統計全年盈利狀況,對於每一個月來說,如果盈利則盈利S,如果虧空則虧空D。</span>
<span style="font-size:12px;">公司每五個月進行一次統計,<span style="color:#cc0000;">全年共統計8次(1-5、2-6、3-7、4-8、5-9、6-10、7-11、8-12),</span></span>
<span style="font-size:12px;color:#cc0000;">已知這8次統計的結果全部是虧空</span><span style="font-size:12px;">(盈利-虧空<0)。題目給出S和D,判斷全年是否能盈利,如果能則</span>
<span style="font-size:12px;">求出盈利的最大值,如果不能盈利則輸出Deficit</span>
<span style="font-size:12px;">輸入:每月盈利和虧空的數值(每月都一樣)</span>
<span style="font-size:12px;">輸出:能最大盈利多少,不能則輸出Deficit
二.解題思路
</span>
<span style="font-size:12px;">1、若SSSSD虧空,那麼全年最優情況爲SSSSDSSSSDSS
2、若SSSDD虧空,那麼全年最優情況爲SSSDDSSSDDSS
3、若SSDDD虧空,那麼全年最優情況爲SSDDDSSDDDSS
4、若SDDDD虧空,那麼全年最優情況爲SDDDDSDDDDSD
5、若DDDDD虧空,全年必虧空...</span>
三.感想

根據網上的建議才做出來,需要繼續努力

四.AC代碼

#include<iostream>  
using namespace std;
int main()
{
    int s, d, res;
    while (cin>>s>>d)
    {
        if (d > 4 * s)res = 10 * s - 2 * d;
        else if (2 * d > 3 * s)res = 8 * s - 4 * d;
        else if (3 * d > 2 * s)res = 6 * s - 6 * d;
        else if (4 * d > s) res = 3 * s - 9 * d;
        else res = -12 * d;
        if (res <= 0)cout << "Deficit" << endl;
        else cout << res << endl;
    }
    return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章