当前位置: 首页 > news >正文

【算法】多路归并(鱼塘钓鱼)

有 N 个鱼塘排成一排,每个鱼塘中有一定数量的鱼,例如:N=5 时,如下表:

鱼塘编号12345
第1分钟能钓到的鱼的数量(1..1000)101420169
每钓鱼1分钟钓鱼数的减少量(1..100)24653
当前鱼塘到下一个相邻鱼塘需要的时间(单位:分钟)3544

即:在第 11 个鱼塘中钓鱼第 11 分钟内可钓到 1010 条鱼,第 22 分钟内只能钓到 88 条鱼,……,第 55 分钟以后再也钓不到鱼了。

从第 11 个鱼塘到第 22 个鱼塘需要 33 分钟,从第 22 个鱼塘到第 33 个鱼塘需要 55 分钟,……

给出一个截止时间 T,设计一个钓鱼方案,从第 11 个鱼塘出发,希望能钓到最多的鱼。

假设能钓到鱼的数量仅和已钓鱼的次数有关,且每次钓鱼的时间都是整数分钟。

输入格式

共 55 行,分别表示:

第 11 行为 N;

第 22 行为第 11 分钟各个鱼塘能钓到的鱼的数量,每个数据之间用一空格隔开;

第 33 行为每过 11 分钟各个鱼塘钓鱼数的减少量,每个数据之间用一空格隔开;

第 44 行为当前鱼塘到下一个相邻鱼塘需要的时间;

第 55 行为截止时间 T。

输出格式

一个整数(不超过2e9-1),表示你的方案能钓到的最多的鱼。

数据范围

1≤N≤100
1≤T≤1000

输入样例:
5
10 14 20 16 9
2 4 6 5 3
3 5 4 4
14
输出样例:
76

分析:

 利用贪心思维,并不需要来回折返,如果钓完一分钟之后,这个鱼塘的鱼的数量依旧比其他鱼塘多,那就继续钓,这样可以节省来回的路上时间,使时间最大化

 

注意: 

(1)int spend[N]={0};

(2)memset(spend,0,sizeof(spend));

两个的区别:

第一行:

这行代码是在定义数组时使用的,不是赋值操作,切记切记!!!

而且也只是给第一个数组赋值为0

第二行:

这个函数是C中的,作用是将spend数组全部赋值为0

#include<iostream>
#include<cstring>
using namespace std;
#define N 110int fishnum[N],d[N],dtime[N],spend[N];//鱼数,减少量,下个鱼塘时间,钓鱼所花时间int get(int k){//求出鱼的数量return max(0,fishnum[k]-d[k]*spend[k]);
}int work(int n,int T){int res=0;memset(spend,0,sizeof(spend));//将spend数组全部赋值为0for(int i=0;i<T;i++){int t=1;for(int j=2;j<=n;j++){//从第二个开始枚举鱼塘if(get(t)<get(j)){t=j;}}res+=get(t);//得到鱼的总数量spend[t]++;}return res;
}
int main(){int n,T;cin>>n;for(int i=1;i<=n;i++) cin>>fishnum[i];for(int i=1;i<=n;i++) cin>>d[i];for(int i=2;i<=n;i++){cin>>dtime[i];dtime[i]+=dtime[i-1];//前缀和}cin>>T;int res=0;for(int i=1;i<=n;i++){res=max(res,work(i,T-dtime[i]));}cout<<res<<endl;return 0;}

http://www.lryc.cn/news/320609.html

相关文章:

  • unity3d Animal Controller的Animal组件中General基础部分理解
  • css背景从上到下颜色渐变、css背景从左到右颜色渐变、 css框线展示外阴影、css框线展示内阴影
  • Nacos学习笔记
  • 微信小程序 nodejs+vue+uninapp学生在线选课作业管理系统
  • trpc-go 博客系统
  • 【JAVA】Servlet开发
  • k8s helm 删除 tiller
  • Python入门(小白友好)
  • 【数据结构与算法】:非递归实现快速排序、归并排序
  • 2024-3-18-C++day6作业
  • 【OceanBase诊断调优】—— 敏捷诊断工具obdiag一键分析OB集群日志设计与实践
  • python 调用redis创建查询key
  • 归并排序思路
  • 【蓝桥杯选拔赛真题65】python输出三个字符 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析
  • K8S日志收集方案-EFK部署
  • js基础语法大全(时间戳,uuid,字符串转json)
  • uView LoadingIcon 加载动画
  • Elasticsearch使用Kibana进行基础操作
  • “SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用教程
  • 【Windows 常用工具系列 15 -- VMWARE ubuntu 安装教程】
  • SpringSecurity(SpringBoot2.X版本实现)
  • 仿牛客项目Day8:社区核心功能2
  • Vmware虚拟机配置虚拟网卡
  • 双向链表代码(带哨兵位循环/不带哨兵位不循环
  • C语言自学笔记13----C语言指针与函数
  • 每日五道java面试题之mybatis篇(一)
  • 一文解读ISO26262安全标准:概念阶段
  • 微信小程序调用百度智能云API(菜品识别)
  • idea项目mapper.xml中的SQL语句黄色下划线去除
  • es 聚合操作(二)