本文主要是介绍poj Y2K Accounting Bug 贪心 暑假第五题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
许多人说看不出与贪心什么关系,我笑了。
打第一次时思路错了,分析的时候才看出是贪心,是最优子问题;
拿第二组举例吧
375 743正确的1到5月应该是 375 375 375 -743 -743
1-5月满足亏损
当到6月时,为满足亏损,其实就是把一月的数据移到6月,其他月都一样。
无论1-5月的数据怎么排,其实1-5月的盈利或亏损都是一定的。都是375*3-743*2;
而11,12月的数据是和1,2月的数据是一样的,为了使盈利最大,故1-5月应该使盈利月份尽可能多,并使盈利的月份在前面;
故总盈利==1-5月的盈利*2+11,12月的盈利或亏损;
代码如下:
#include<iostream>
using namespace std;
int main()
{int n,m;while(cin>>n>>m){int i=1;while(n*i<m*(5-i)&&i<=4){i++;}i--;int k=(n*i-m*(5-i))*2;int t=2;while(t>0){if(t<=i)k+=n;elsek-=m;t--;}if(k<=0)cout<<"Deficit"<<endl;elsecout<<k<<endl;}return 0;
}
这篇关于poj Y2K Accounting Bug 贪心 暑假第五题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!