poj2586 Y2K Accounting Bug —— 枚举
链接:http://poj.org/problem?id=2586
题意:大意是一个公司在12个月中,或固定盈余s,或固定亏损d.但记不得哪些月盈余,哪些月亏损,只能记得连续5个月的代数和总是亏损(和<0算亏损),问全年是否可能盈利?若可能,输出可能最大盈利金额,否则输出“Deficit".
题解:看了网上的题解,基本上都说是贪心,但我不知道怎样贪心,只不过按自己的想法去做(做的时候不够细心,忽略了细枝末节)。由于连续5个月必须亏损,所以就但看5个月内,亏损最少的情况,是1*d与4*s,是2*d与3*s……5*d+0*s(忽略点1,如果4个月的亏损都小于1个月的盈利,根据题意,那只能5个月都亏损了)。 即要算出单独在5个月内,在亏损最少的情况下,亏损与盈利所占的比例。假设算出d的月份数为k,即用最少的d,去填这12个月,使得每连续5个月,都至少有k个月份为d。由于越靠中间的月份出现的次数越多(但5,6,7,8均出现5次),所以我决定分别在5与8月份开始放置k(为何选5和8,因为他们靠中间,贡献大,且又能照顾到最尾端的月份,且中间的6,7月离得很近,也照顾得到),并且随着k的增大依次向两边放置,如k
= 2时,放2,4,8,9。由于没有继续推下去,初以为就直接是2*k个月为亏损。但却忽略了k=4或5时,当k=4时,每向两边放4个,两边都可满足,但是在中间的6,7月份,却有连续两个s盈利,就不符合k=4的条件,所以要在6,7月中再放一个d,即总共为9个d,当k=5时,就直接是12个月了。
所以,这种方法是枚举,不过枚举量少,可以人工枚举。(方法笨拙,见谅!)
收获:当枚举量小时,可人工枚举,但是要注意细节。且当得出一个结论时,不要理所当然以为对,要从多个角度,特别是边界条件,去考验这个结论是否站得住脚。
代码如下:
#include<stdio.h> int main()
{
long long r,s,d,sum;
while(scanf("%lld%lld",&s,&d)!=EOF)
{
if(d*1>s*4) sum = 10*s - 2*d;
else if(d*2>s*3) sum = 8*s - 4*d;
else if(d*3>s*2) sum = 6*s - 6*d;
else if(d*4>s*1) sum = 3*s - 9*d;
else sum = -1;
if(sum>0)
printf("%lld\n",sum);
else
printf("Deficit\n");
}
return 0;
}
poj2586 Y2K Accounting Bug —— 枚举的更多相关文章
- [POJ2586]Y2K Accounting Bug
[POJ2586]Y2K Accounting Bug 试题描述 Accounting for Computer Machinists (ACM) has sufferred from the Y2K ...
- POJ2586——Y2K Accounting Bug
Y2K Accounting Bug Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K ...
- poj2586 Y2K Accounting Bug(贪心)
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=2586 ------ ...
- POJ2586 Y2K Accounting Bug 解题报告
Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vi ...
- POJ-2586 Y2K Accounting Bug贪心,区间盈利
题目链接: https://vjudge.net/problem/POJ-2586 题目大意: MS公司(我猜是微软)遇到了千年虫的问题,导致数据大量数据丢失.比如财务报表.现在知道这个奇特的公司每个 ...
- POJ2586 Y2K Accounting Bug(贪心)
题目链接. 题目大意: 题目相当晦涩难懂啊. 一年的12个月,每5个月统计一次,如从1~5,2~6,3~7,...,8~12共统计了8次,已知每次都deficit,问这一年有没有盈利的可能. 一个月s ...
- POJ 2586 Y2K Accounting Bug(枚举洪水问题)
Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10674 Accepted: 53 ...
- POJ 2586 Y2K Accounting Bug(枚举大水题)
Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10674 Accepted: 53 ...
- 贪心 POJ 2586 Y2K Accounting Bug
题目地址:http://poj.org/problem?id=2586 /* 题意:某公司要统计全年盈利状况,对于每一个月来说,如果盈利则盈利S,如果亏空则亏空D. 公司每五个月进行一次统计,全年共统 ...
随机推荐
- [Python Cookbook] Numpy Array Joint Methods: Append, Extend & Concatenate
数组拼接方法一 思路:首先将数组转成列表,然后利用列表的拼接函数append().extend()等进行拼接处理,最后将列表转成数组. 示例1: import numpy as np a=np.arr ...
- 从顺序随机I/O原理来讨论MYSQL MRR NLJ BNL BKA
http://blog.itpub.net/7728585/viewspace-2129502/
- 更新tensorflow支持GPU时出错
sudo pip install --upgrade tensorflow-gpu Operation not permitted: '/tmp/pip-Sx_vMg-uninstall/System ...
- Jmeter Summariser report及其可视化
Jmeter summariser report的设置在:bin/jmeter.properties #------------------------------------------------ ...
- Zen of Python(Python的19条哲学)
The Zen of Python Beautiful is better than ugly. Explicit is better than implicit. Simple is better ...
- treeList获取目录下的所有文件
/// <summary>/// treeList获取目录下的所有文件/// </summary>public static void InitTreeListGetFiles ...
- nload 命令
网卡 流量监控命令 // 安装 yum intall nload nload 上下page 键 切换网卡查看
- Android手机需要安装任务管理软件吗?
使用android手机的用户可能都安装了任务管理的软件,使用android手机真的有必要安装结束任务的软件吗?大家在使用中也都发现了,很多软件在被结束后,马上就会又出现在任务列表里,或是稍等一会自己也 ...
- 使用excel进行数据挖掘(5)---- 应用场景分析
使用excel进行数据挖掘(5)---- 应用场景分析 在配置环境后,能够使用excel进行数据挖掘. 环境配置问题可參阅: http://blog.csdn.net/xinxing__8185/ar ...
- 矩形嵌套-记忆化搜索(dp动态规划)
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描写叙述 有n个矩形,每个矩形能够用a,b来描写叙述,表示长和宽. 矩形X(a,b)能够嵌套在矩形Y(c,d)中当且仅 ...