poj Gone Fishing 枚举加贪心 当初做的很纠结啊!!终于A了,与大家分享一下经验
这道题很是纠结啊!!!!说说思路吧!!先将所到湖的个数枚举,直接将走路时间减去,这样就可以贪心了,在枚举所选的湖个数的时候,那个湖鱼多久去那个湖,然后分别比较枚举的每种情况所抓鱼的数量,这样得出最大值!!!!
令我纠结好几个点的问题还不知这些!!题目的最后一句的意思是将除了走路捕鱼的剩余时间都放在有鱼的单位数最小的那个湖,譬如说如果3个湖鱼的情况为0 10 10,那就应该把剩余时间都放在第二个湖,课我就是wa,wa了后几个小时,最后干脆把所有剩余时间都放在第一个湖!!A了!!!我感觉狠诧异啊!!望读者留意帮我解答
#include<iostream>
using namespace std;
int fish[50],defish[50],detime[50],refish[50],tim[50],tim1[50];
int main()
{
int n,t,ret,ret1,cou=0;
while(cin>>n,n!=0)
{
cin>>t;
cou++;
int time=t*60;
int ti=time;
for(int i=0;i<n;i++)
{
scanf("%d",&fish[i]);//表示每个湖鱼的数量
refish[i]=fish[i];// 再用一个数组记录原始数量,后面枚举的时候用
}
for(int i=0;i<n;i++)
scanf("%d",&defish[i]);//记录每个湖鱼减少的数量
for(int i=1;i<n;i++)
scanf("%d",&detime[i]);//两湖之间所用的时间
detime[0]=0;
int temp=0;
int max1=-1;
for(int i=0;i<n;i++)//分别枚举从第一个湖到底i个湖的捕鱼情况
{
memset(tim,0,sizeof(tim));//记录每个湖捕鱼所用时间
time=ti;
for(int mi=0;mi<=i;mi++)
time=time-detime[mi]*5;//将走路的时间减去
ret=time;
int sum=0;
for(int j=0;j<n;j++)
fish[j]=refish[j];//这就是每次枚举还原每个湖鱼的数量
while(time>0)//开始捕鱼,直到将捕鱼时间用完
{
int sign1=0;
int max=0;
for(int j=0;j<=i;j++)//筛选出在所走的范围呢哪个湖鱼多就捕那个
{
if(fish[j]>max)
{
max=fish[j];
temp=j; //记录在哪个湖抓的鱼
sign1=1;
}
}
if(sign1==1)
tim[temp]+=5;
sum+=max;//将捕的鱼加起来
if(fish[temp]>0)
fish[temp]-=defish[temp];
time-=5;
}
if(sum>max1)//筛选每次枚举所获最多鱼的数量
{
ret1=ret;
max1=sum;
for(int j=0;j<n;j++)
tim1[j]=tim[j];
}
if(detime[i+1]==0)//很关键,如果消耗时间为零,就走不到下一个湖了
break;
}
int sum=0;
int i;
i=0;
for(int j=0;j<n;j++)//将剩余时间都放在第一个湖上
{
if(j==i)
continue;
sum+=tim1[j];
}
tim1[i]=ret1-sum;
for(int j=0;j<n;j++)
{
if(j==0)
cout<<tim1[j];
else
printf(", %d",tim1[j]);
}
cout<<endl;
printf("Number of fish expected: %d\n\n",max1);
}
return 0;
}
poj Gone Fishing 枚举加贪心 当初做的很纠结啊!!终于A了,与大家分享一下经验相关推荐
- 做了6年的小猎头跟大家分享工作经验
本人小猎头,毕业8年多,猎头做了6年,不是你们看过那篇非常牛逼的猎头体验文章里面的公司,他们据说不都是年薪100万的职位么,我做的多数是20万-80万的中小职位. 做100-300万年薪的公司,在国内 ...
- 做自媒体如何挑选录音设备,我来分享个人经验,收藏备用
现在很多人在做自媒体的时候,总是在纠结声音的问题,自己用电脑或者手机录制出来的声音,总是不清晰,但是也不知道怎么办,我之前也是出现过这样的情况,我当时记得很清楚,一个网课平台需要我给他们录制一些自媒体 ...
- HDU 6709“Fishing Master”(贪心+优先级队列)
传送门 •参考资料 2019CCPC网络选拔赛 H.Fishing Master(思维+贪心) •题意 池塘里有 n 条鱼,捕捉一条鱼需要花费固定的 k 时间: 你有一个锅,每次只能煮一条鱼,其中煮熟 ...
- POJ NOI0105-33 计算分数加减表达式的值
问题链接:POJ NOI0105-33 计算分数加减表达式的值. 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,输入n的值,求 1/1 - 1/2 + 1/3 - 1/4 + ...
- 【新示例】阿里系行业SaaS,企加云要做IOE的赋能者
作者:牛成 | 小编:小葱 [新示例] 协作云路上的先驱or先烈? 怎么让数据打通不再是扯淡? 如何定义钉钉? 近一年,在SaaS行业发展趋于平稳.探索深度价值的背景下,诸多主打垂直行业的SaaS应 ...
- 视频加字幕怎么做?分享几种视频加字幕方法
视频加字幕怎么做呢?视频加字幕可以带来许多好处,可以清晰地传达视频内容的信息,帮助观众更好地理解视频内容.此外,视频加字幕可以帮助那些听障人士和其他难以听懂视频内容的人群更好地获取视频信息,提高视频的 ...
- tensorflow中保存模型、加载模型做预测(不需要再定义网络结构)
下面用一个线下回归模型来记载保存模型.加载模型做预测 参考文章: http://blog.csdn.net/thriving_fcl/article/details/71423039 训练一个线下回归 ...
- 做网页很实用代码集合和CSS制作网页小技巧整理
做网页很实用代码集合 控制横向和纵向滚动条的显隐?<body style="overflow-y:hidden"> 去掉x轴 <body style=" ...
- I aced it!我做得很好
Michael (M)这个美国学生以往几次考试都考糟了,这一次情况可大不相同.今天他和他的中国同学李华(L)约好了在图书馆见面. L: 嗨, Michael,今天考得怎么样? M: Not bad! ...
- 竞赛经验——挑战杯、互联网加、北斗杯、微软创新杯、计算机设计等比赛教训与经验
最近参加一些比赛,北斗杯.挑战者杯.微软创新杯等比赛,每次比赛都有不少需要总结的地方,特别是项目展示上技巧很多,总结一下. 首先最重要的是作品自身硬!自身的作品完成度不高,或者是没有创新点,就没必要参 ...
最新文章
- ireport怎么套打_阴阳师:当前版本道馆突破怎么打?九套阵容让你成为道馆小能手...
- 一些学习cocos2d的网站
- h3c 链路聚合测试_良无磐石固,虚名复何益?- 链路聚合协议互通测试
- 面向对象进阶4:软件开发规范
- android byte转string_“嵌入式开发学脚本干嘛”之进制/Byte/Hex处理
- 使用QueenSono从ICMP提取数据
- 1212_MISRA_C规范学习笔记_控制表达式规则要求
- 小卡要民主(卡雷尔机器人)
- 云原生、工业互联网之浅见
- 前端程序员常用办公工具(持续更新)
- 膨胀卷积(DILATED CONVOLUTIONS)
- 如何禁止ie打开本地网页文件时的安全提示
- React组件Component
- Oracle 字符集 原理及问题解决 (全)
- obsidian和zotero联动无法跳转zotero
- B 站弹幕 protobuf 协议还原分析
- python解压版怎么安装_python 解压版 zip file 安装
- El el表达式,判断是否为空
- FME工具助力多源基础地理数据融合
- 全球最大BT网站海盗湾服务器被封 看备份重要性