问题:一个公司在12个月中,有固定盈余s,或固定亏损d两种情况.但记不得哪些月盈余,哪些月亏损,只能记得连续5个月的代数和总是亏损(和<0算亏损),问全年是否可能盈利?若可能,输出可能最大盈利金额,否则输出“Deficit".

思路:5个月为一组,一年只有8种情况,1-5,2-6,3-7等等。我们要做的就是,将亏损的月份尽量往后放,这样使得亏损月尽量少。

先将每个月都当成盈利,从1月开始,算5个月的总和,假如是盈利,把最后一个月设成亏损,再算5个月总和,要是还是盈利,继续依次设置下去。要注意的是,假如一个月盈利大于4个月亏损总和,就只能全亏了。

这样设置完之后,把总数加起来,看盈利状况

  1. #include<iostream>
  2. using namespace std;
  3. int add(int m[],int n) //从第n个月开始,5个月的盈亏总和
  4. {
  5. int sum=0;
  6. for(int i=n;i<n+5;i++)
  7. {
  8. sum+=m[i];
  9. }
  10. return sum;
  11. }
  12. int main()
  13. {
  14. int s,d;
  15. int month[12];
  16. while(cin>>s>>d)   //这里不要随便用for(;;),除非有终止条件让他break掉
  17. {
  18. d-=2*d;
  19. for(int i=0;i<12;i++)
  20. month[i]=s;
  21. for(int i=0;i<8;i++)
  22. {
  23. for(int j=1;j<=5;j++)  //这里要有=号,就是有可能一个月的盈利大于4个月的亏损情况,那只能是全亏了
  24. {
  25. int tmp = add(month,i);
  26. if(tmp>=0)
  27. {
  28. //cout<<"add "<<i<<"  : "<<tmp<<endl;
  29. month[i+5-j]=d;
  30. }
  31. else
  32. break;
  33. }
  34. }
  35. int sum=0;
  36. for(int i=0;i<12;i++)
  37. {
  38. // cout<<month[i]<<endl;
  39. sum+=month[i];
  40. }
  41. if(sum>0)
  42. cout<<sum<<endl;
  43. else
  44. cout<<"Deficit"<<endl;
  45. }
  46. system("pause");
  47. return 0;
  48. }

转载于:https://blog.51cto.com/zwqgo/1142046

poj2586(贪心盈亏问题)相关推荐

  1. POJ2586(贪心)

    大意:每5个月(12345  23456...)提交一次报表,保证每次都是亏损的.每个月盈利s,亏损d,全年最大盈利. 分析:每次1个月亏损,2个月亏损...4个月亏损,依次求利润. 代码: #inc ...

  2. poj2586 Y2K Accounting Bug(贪心)

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=2586 ------ ...

  3. 戒梭先生|比盈亏更重要的交易生活观

    hello,兄弟们姐妹们,大家好! 今天咱们分享的内容是: 比盈亏更重要的交易生活观 每个人进入投资圈,都带有他的小目标,初心都是为了更好的生活. 有的人只为赚得每日柴米油盐,有的人企图财富自由,有的 ...

  4. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  5. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  6. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  7. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  8. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  9. 贪心:expedition 最优加油方法

    已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个 ...

最新文章

  1. 多重继承_Java语言编程第25讲——Java中多重继承,也会导致模棱两可的歧义
  2. python2.0教程_django2.0入门教程第一节
  3. 赋值后页面不渲染_第七节:框架搭建之页面静态化的剖析
  4. js获取一周从开始到结束日期范围
  5. electron开发_基于Electron+React的跨平台应用程序基础开发框架
  6. 推荐几款好用的模态框附带教程
  7. ***的基础知识总结
  8. matlab 运算子图_PHP运算子
  9. Quartz与Spring集成 Job如何自动注入Spring容器托管的对象
  10. 帆软单元格以HTML显示内容(点击更改herf值和onclik值)
  11. 御剑江湖一键端mysql_御剑江湖一键端漏洞,可导致数据库被任意修改
  12. opporeno怎么刷鸿蒙系统,opporeno老是提示更新系统
  13. python曲线拟合预测_数据预测与曲线拟合
  14. 元宇宙GOD新纪元打通元宇宙
  15. 00. 微服务架构沉思录
  16. obs studio_使用OBS Studio实时进行Linux视频编辑
  17. win11系统下安装lighttools8.6无加密狗版的方法
  18. pandas dataframe获取列名、添加列名、列索引
  19. Linux命令行终端提示符修改
  20. 宝宝生活点滴(2009.11)

热门文章

  1. codeforces D MUH and Cube Walls(kmp)
  2. 几种TCP连接中出现RST的情况
  3. 系统管理员必学的30个Linux实用命令
  4. protobuf的ParseFromArray 解析失败的问题
  5. UVa11968 - In The Airport
  6. 题目1165:字符串匹配
  7. 用maven创建Spring MVC项目
  8. 【字符串】大小写的转换
  9. gulp.js 的安装以及使用
  10. 数据结构之C语言模拟整数数组实现