1013-N

        1.题目编号:1013-N
2.简单题意:有一个公司每月的赢亏是一个定数,要么一个月赢利m,要么一月亏n。公司每五个月有一个赢亏报表且都为亏。有8次报表,1到5,2到6,…,8到12,输入赢m和亏n,在每张报表为亏的情况下,输出全年公司最高可赢利多少,如果存在,则输出多多额,如果不存在,输出"Deficit"。
3.解题思路形成过程:在保证连续5个月都亏损的前提下,使得每5个月中亏损的月数最少。 四种能盈利的情况:
          a:若mmmmn亏空,那么全年最优情况为mmmmnmmmmnmm;
          b: 若mmmnn亏空,那么全年最优情况为mmmnnmmmnnmm;
          c: 若mmnnn亏空,那么全年最优情况为mmnnnmmnnnmm;
          d: 若mnnnn亏空,那么全年最优情况为mnnnnmnnnnmn。

4.感想:做题首先题意要读懂,就像这道题,题意都说亏损了,怎么能盈利呢,平时我们做题要学会从其他角度思考问题,而且考虑的还要全面。

5.AC代码:

#include <iostream>
using namespace std;
int main()
{
    int m,n;
    int su,a;
    while(cin>>m&&cin>>n)
    {
        if(n>4*m)
           su=10*m-2*n;
        else if(2*n>3*m)
           su=8*m-4*n;
        else if(3*n>2*m)
           su=6*(m-n);
        else if(4*n>m)
          su=3*(m-3*n);
        else su=0;
        if(su<=0)
           cout<<"Deficit"<<endl;
        else
         cout<<su<<endl;
    }
    return 0;
}


你可能感兴趣的:(ACM,贪心算法)