Poj 1042 gone fishing-程序员宅基地

题目大意

题目就是在给定钓鱼时间,湖泊之间转移的时间,各湖泊初始鱼量,各湖泊鱼量的下降指数求在规定时间内的最大钓鱼量。

解题思路

本题目采用枚举+贪心的方法可以求解出来。首先我们需要对题目进行一些改造,我们需要枚举从第一个湖泊到第n个湖泊之间各种可能情况,然后再这些情况中选出最大值,输出结果。由于到各个湖泊的时间有所差异,我们首先需要把耽搁在转移路径上的时间除去,然后在剩余时间内确定钓鱼量的最大值,对于每次选择,我们采用贪心的方式选取最大值,进而得出最优解。

本题目需要特别注意输出格式,容易出现小错误:

我们需要考虑flag=0的情况,下面我们看一组数据:

*        看数据:
* 2
* 1
* 0 0
* 1 1
* 1
* 答案:
* 60 0
* 0
这里如果不写出代码:
          if(flag == 0)
{ 60 printf("%d", hour*5); 61 for(int i=1; i<n; i++) 62 printf(", %d", 0); 63 printf("\nNumber of fish expected: %d\n\n", flag); 64 }
那么最后会一直wrong answer。

AC代码

 1 #include<stdio.h>
 2 struct lake
 3 {
 4     int fish;
 5     int decrease;
 6     int time;
 7     int stay;
 8 } K[30];
 9 int main()
10 {
11     int k_fish[30],k_stay[30],T[30];//T[i]表示路上花去时间
12     int sum,maxn,flag,i,j,p,t,n,hour,k;
13     while(scanf("%d",&n)&&n!=0)
14     {
15         //第一步的输入数据
16         int hour;
17         scanf("%d",&hour);
18         hour*=12;
19         for(int i=0;i<n;i++)
20         {
21             scanf("%d",&K[i].fish);
22             k_fish[i]=K[i].fish;//复制数组方便枚举各种情况时还原K[i].fish
23         }
24         for(int i=0;i<n;i++)
25         scanf("%d",&K[i].decrease);
26         K[0].time=0;
27         for(int i=1;i<=n-1;i++)
28         scanf("%d",&K[i].time);
29        T[0]=K[0].time;
30        flag=0;//初始化最大值
31         for(int i=0;i<n;i++)
32         {
33             if(i)
34             T[i]=T[i-1]+K[i].time;//在转移过程中所消耗的时间
35             for(int s=0;s<n;s++)
36             {K[s].fish=k_fish[s];K[s].stay=0;}//每一次枚举都初始化数据,并把在每一个lake的时间置为0
37             sum=0;
38             for(int h=1;h<=hour-T[i];h++)//在规定的时间内获取最大值
39             {
40                 maxn=0;
41                 for(int k=0;k<=i;k++ )//寻找单位时间内最大的钓鱼量
42                 {
43                     if(maxn<K[k].fish){maxn=K[k].fish;p=k;}
44                 }
45                 sum+=maxn;
46                 if(maxn>0)
47                 {
48                     K[p].fish-=K[p].decrease;K[p].stay++;//在最大值的地方加上滞留时间,并把鱼量减小
49                  }
50                  else K[0].stay++;//如果没有找到,则在第一个湖那边加1;
51 
52             }
53             if(sum>flag)
54             {flag=sum;
55              for(int j=0;j<=n;j++)
56              k_stay[j]=K[j].stay*5;  //这里只对全部鱼量不全为0的情况,故下面在输出结果时要考虑flag是否为0
57             }
58         }
59         if(flag == 0){
60             printf("%d", hour*5);
61             for(int i=1; i<n; i++)
62                 printf(", %d", 0);
63             printf("\nNumber of fish expected: %d\n\n", flag);
64         }
65         else{
66        for(j=0;j<n-1;j++)
67             printf("%d, ",k_stay[j]);
68             printf("%d\n",k_stay[n-1]);
69        printf("Number of fish expected: %d\n\n",flag);//注意输出格式
70     }
71     }
72     return 0;
73 }

 

转载于:https://www.cnblogs.com/khbcsu/p/3885490.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30852451/article/details/95260643

智能推荐

UI设计 调色板的应用_简述ui调色板的应用-程序员宅基地

文章浏览阅读2.5k次。(一)全局色1.中性色:灰度色 灰度色是较为通用的颜色,可用在文字及各种表单组件设计上。灰度色适用于大多数界面设计。由于灰色度的H值和S值没有变化,所以我们只观察B值,如图所示。这套灰度色的B值分别是B20、B60、B80、B90、B94、B98和B100。 2.主色 使用场景:导航菜单、按钮和各种组件设计3.辅助色:橙色 使用场景:辅助表现触发效果和各种组件设计4.对比色 使用场景:一_简述ui调色板的应用

关于spring-cloud-1_springcloud1-程序员宅基地

文章浏览阅读190次。这里大字提醒: 本文抄自 zhongfucheng。仅供自己查看翻阅,勿转载如果有任何学习需要,请关注作者的微信号: java3y海量学习资源,相当不错。附上原著微信链接:https://mp.weixin.qq.com/s?__biz=MzI4Njg5MDA5NA==&mid=2247484335&idx=1&sn=a871bf871fcaffda0..._springcloud1

AHB2APB 同步桥的设计代码(Verilog)_ahb转apb verilog代码-程序员宅基地

文章浏览阅读1w次,点赞18次,收藏155次。????关于AHB2APB的设计请看:AHB2APB设计????关于AHB2APB的验证请看:AHB2APB验证????关于AHB2APB的验证请看:AHB2APB验证数据是否需要寄存一拍的控制信号的产生,如下代码: //------数据寄存------- wire rdata_reg_param; // REGISTER_RDATA,寄存读数据 wire wdata_reg_param; // REGISTER_WD_ahb转apb verilog代码

Spring Data JPA在springboot中的应用-程序员宅基地

文章浏览阅读202次。文章目录一、springboot中spring data jpa的配置pom.xml配置application.yml测试类基础模板二、spring data jpa利用原生sql或者jpql执行数据库操作实体bean三、spring data jpa根据命名规则查询四、specification(规范查询,分页,动态sql)五、多表关联查询一、springboot中spring data jp..._data jpa在springboot中

Win10安装Ansible Python包_windows下载ansible安装包-程序员宅基地

文章浏览阅读3k次。文章目录前言安装步骤1.准备工作2.下载ansible安装包3.安装3.1 修改压缩包3.2 解压缩3.3 安装总结前言此Win10安装ansible方案,只是为了解决win环境下开发python项目时,涉及ansible模块引用报错的问题。如果想在win环境下安装ansible进行客户端管理或playbook开发,本文所述方案不适合!可了解一下Cygwin或Windows Subsystem for Linux。安装步骤在win环境下直接使用pip install ansible安装肯定是会_windows下载ansible安装包

macOS开发,发现webview连接不上网络。。已解决-程序员宅基地

文章浏览阅读1.1k次。今天帮公司搞一个mac的开发项目,就是最简单的用webview套一个网页就可以了。代码就一句话可惜,报了这堆错误,而且webview一片空白。后来在网上终于找到了解决方法,在这里分享给大家。

随便推点

mybatis动态SQL注意事项记录_mybatis动态函数注意点-程序员宅基地

文章浏览阅读350次。1. 多参数如果存在多个参数,则必须要@Param来指定参数名称2. 日期比较数据库类型:datetime这里传入的字符串日期endDate 必须为 2018-11-17 00:00:00.000说明:传入的字符串日期的长度必须和数据库的长度保持一致3. insert后返回主键ID说明: 设置useGeneratedKeys为true,返回数据库自动生成的记录主键idxml方式..._mybatis动态函数注意点

大数据理论体系_大数据的基本理论体系-程序员宅基地

文章浏览阅读2.8w次,点赞89次,收藏628次。目录结构大数据是什么?大数据是如何发展起来的?大数据处理的基本流程是什么?为什么说数据不动代码动?移动计算比移动数据更划算?DAG对大数据处理有什么好处?批处理和流处理如何区分? 有边界数据和无边界数据如何区分?批处理中如何提高CPU利用率?什么是事件时间和处理时间?Workflow设计模式指的什么?什么是商业智能(BI)?分布式锁是什么?如何实现?分布式事务是什么?如何实现?分布式锁和分布式事务有什么区别?CAP定理是什么?BASE理论是什么?分布式系统有哪些衡量指标?_大数据的基本理论体系

Windows环境下sublime text 3搭建前端开发环境-程序员宅基地

文章浏览阅读148次。本文转载于:猿2048网站https://www.mk2048.com/blog/blog.php?id=i2bckjb&title=Windows%E7%8E%AF%E5%A2%83%E4%B8%8Bsublime+text+3%E6%90%AD%E5%BB%BA%E5%89%8D%..._windows下sublime搭建前端环境

小白学java日记——接口与匿名内部类的实例_java 接口 匿名类 案例-程序员宅基地

文章浏览阅读88次。班级学生排队,男生按照身高从低到高排一队,女生,按照姓名从小到大排一队(使用接口和匿名内部类)package homework;import java.sql.Connection;import java.util.Arrays;/*班级学生排队,男生按照身高从低到高排一队,女生,按照姓名从小到大排一队(使用接口和匿名内部类)分析:接口,数组,枚举,匿名内部类,Arrrys工具类,String的方法实现过程:1.分组按照性别分成男队和女队2.排序使用接口制定对应的规则分别实._java 接口 匿名类 案例

公有继承基类和派生类之间构造和析构、赋值和拷贝构造函数的关系(上)_公有继承 构造-程序员宅基地

文章浏览阅读251次。公有继承基类和派生类之间构造和析构、赋值和拷贝构造函数的关系(上)1、公有继承基类和派生类之间构造函数的关系如果一个类Text在公有继承了Object类,在创建一个Text对象t时会先调用Object的构造函数,然后再调用Text的构造函数,不论Text的形参列表声明中Object的声明在前在后。代码测试:#include<iostream>using namespace std;class Object{ private: int val; public: Object_公有继承 构造

提升UITableView性能-复杂页面的优化_android uitableview优化-程序员宅基地

文章浏览阅读504次。前言随着App的用户界面的内容越来越丰富,再强的手机可能都无法同时渲染复杂的UI界面和保证流畅的体验。所以,我们这些程序猿=。=在写代码的时候就要注意,如何尽可能提高用户的操作流畅性。之前的做的项目,青桔音乐iOS客户端里面的首页就是一个类似微信朋友圈的“动态”页面,大致如下:青桔动态页面如果是你,你会怎么实现这个页面呢?这还用问,当然是用UITableView+自定义_android uitableview优化