鱼塘钓鱼(多路归并)

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

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

即:在第 1 1 1 个鱼塘中钓鱼第 1 1 1 分钟内可钓到 10 10 10 条鱼,第 2 2 2 分钟内只能钓到 8 8 8 条鱼,……,第 5 5 5 分钟以后再也钓不到鱼了。

从第 1 1 1 个鱼塘到第 2 2 2 个鱼塘需要 3 3 3 分钟,从第 2 2 2 个鱼塘到第 3 3 3 个鱼塘需要 5 5 5 分钟,……

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

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

输入格式

5 5 5 行,分别表示:

1 1 1 行为 N N N

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

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

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

5 5 5 行为截止时间 T T T

输出格式

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

数据范围

1 ≤ N ≤ 100 1≤N≤100 1N100,
1 ≤ T ≤ 1000 1≤T≤1000 1T1000

输入样例:

5
10 14 20 16 9
2 4 6 5 3
3 5 4 4
14

输出样例:

76
#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;const int N = 110;int a[N], d[N], l[N], spend[N];int get(int k) {                                //第i分钟在第k个鱼塘钓到鱼的数量return max(0, a[k] - d[k] * spend[k]);
}int work(int n, int T) {                        //只走前n个鱼塘,且时间为T的最大收益int res = 0;memset(spend, 0, sizeof spend);for (int i = 0; i < T; i ++ ) {             //按分钟遍历int t = 1;                              //t表示第i分钟第t的鱼塘的鱼最多,初始为1号鱼塘for (int j = 1; j <= n; j ++ )          //第i分钟在前n个鱼塘的最大收益if (get(j) > get(t))t = j;res += get(t);spend[t] ++ ;                           //在t号鱼塘逗留时间+1}return res;
}int main() {int n, T;                                   //n个鱼塘,截止时间为Tcin >> n;for (int i = 1; i <= n; i ++ ) cin >> a[i]; //各鱼塘第一分钟产鱼量for (int i = 1; i <= n; i ++ ) cin >> d[i]; //各鱼塘每一分钟减鱼量for (int i = 2; i <= n; i ++ ) {            //从第一个鱼塘到第i个鱼塘之间的距离cin >> l[i];l[i] += l[i - 1];                       //因为这步求前缀和,所以前面下标i要从1开始}cin >> T;int res = 0;for (int i = 1; i <= n; i ++ )              //从第一个鱼塘出发,遍历n个鱼塘res = max(res, work(i, T - l[i]));      //只去前i个鱼塘的最大收益,这里已经减去路上所用时间cout << res << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/768017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带3090显卡的Linux服务器上部署SDWebui

背景 一直在研究文生图&#xff0c;之前一直是用原始模型和diffuser跑SD模型&#xff0c;近来看到不少比较博主在用 SDWebui&#xff0c;于是想着在Linux服务器上部署体验一下&#xff0c;谁知道并没有想象的那么顺利&#xff0c;还是踩了不少坑。记录一下过程&#xff0c;也许…

YOLO-MS 论文解读

paper&#xff1a;YOLO-MS: Rethinking Multi-Scale Representation Learning for Real-time Object Detection official implementation&#xff1a;https://github.com/fishandwasabi/yolo-ms 背景 尽管已经取得了很好的性能&#xff0c;但识别不同尺度的物体仍是实时目标…

并发容器之CopyOnWrite

CopyOnWrite容器 什么是CopyOnWrite容器呢&#xff1f;CopyOnWrite容器是一个写时复制的容器。在向容器中添加元素时&#xff0c;不会直接向当前容器中添加&#xff0c;而是将当前容器进行copy&#xff0c;复制出一个新的容器&#xff0c;然后往新的容器中添加元素&#xff0c;…

3.24总结

P - 节拍 Zty是一个总是充满热情的人。他想解决世界上各种困难的ACM问题。而且他有一个习惯&#xff0c;他不喜欢解决 一个比他已经解决的问题容易的问题。现在一芬飞给他n个难度问题&#xff0c;在解决另一个问题后告诉他解决的相对时间。 你应该帮助zty找到一个解决问题的顺序…

thymeleaf模板公共块导入不报错,能显示文字但无法显示div的问题解决办法!

本篇文章主要讲解thymeleaf模板公共块导入时,没有任何报错信息,但是进行排查后发现能够显示文字,改成html标签后就无法显示div的问题解决办法! 日期:2024年3月24日 作者:任聪聪 问题现象: 说明:代码好好的,引入的路径也是对的,可以显示文字,但不可以div,自定义公共…

2023年12月青少年软件编程C语言二级真题答案——持续更新.....

一、统计指定范围里的数 给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。 时间限制:1000 内存限制:65536 输入 第一行1个整数n、,分别表示序列的长度。(0 < n ≤ 10000) 第二行n个正整数,表示序列里…

【Mysql】硬盘性能压测(Sysbench工具)

1、IOPS和吞吐量介绍 IOPS&#xff08;每秒输入/输出操作数&#xff09;&#xff1a;是衡量存储设备每秒能够执行的输入/输出操作的数量。对于数据库等需要频繁读写的应用程序而言&#xff0c;IOPS 是一个关键的性能指标。更高的 IOPS 意味着存储设备能够处理更多的读写请求&am…

检索增强生成(RAG)技术:实现流程、作用及应用案例

一. RAG简介 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;技术巧妙地结合了信息检索与神经网络生成模型的力量&#xff0c;通过在生成过程中引入相关的外部信息&#xff0c;实现了在…

工作思考|研发环境好好的,怎么上线就出问题了?

场景再现 那是一个夜黑风高的晚上&#xff0c;某个版本迭代经过了完备的测试&#xff0c;正准备上线。研发同事A开完了上线评审后&#xff0c;信心满满地对运维同事B说&#xff1a;“开冲&#xff01;” 几分钟后&#xff0c;同事B发了条消息过来&#xff0c;看着抖动的头像&…

实验报告。。。。。

机动车 public class User {public static void main(String[] args) {Vehicle v new Vehicle();System.out.println("设置功率大小&#xff1a;");v.setPower(36);System.out.println("功率大小为&#xff1a;" v.getPower() "kw");v.speed…

【WEEK4】 【DAY5】AJAX - Part Two【English Version】

2024.3.22 Friday Following the previous article 【WEEK4】 【DAY4】AJAX - Part One【English Version】 Contents 8.4. Ajax Asynchronous Data Loading8.4.1. Create User.java8.4.2. Add lombok and jackson support in pom.xml8.4.3. Change Tomcat Settings8.4.4. Mo…

谷粒商城 - 前端基础

1.前端技术栈 2.ES6 2.1简介 2.2 let 与 const <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Doc…

自动驾驶感知新范式——BEV感知经典论文总结和对比(一)

自动驾驶感知新范式——BEV感知经典论文总结和对比&#xff08;一&#xff09; 博主之前的博客大多围绕自动驾驶视觉感知中的视觉深度估计&#xff08;depth estimation&#xff09;展开&#xff0c;包括单目针孔、单目鱼眼、环视针孔、环视鱼眼等&#xff0c;目标是只依赖于视…

Python爬虫之requests库

1、准备工作 pip install requests 2、实例 urllib库中的urlopen方法实际上就是以GET方式请求网页&#xff0c;requests库中相应的方法就是get方法。 import requestsr requests.get(https://www.baidu.com/) print(type(r)) # <class requests.models.Response> 响…

YOLOv8的FPS计算代码

YOLOv8的FPS计算代码 目前是默认加载到0号GPU中&#xff0c;如果你想加载到指定GPU中&#xff0c;请手动在加载模型的时候设置 device编号 代码 import osfrom ultralytics import YOLOdef load_model(model_path):model YOLO(model_path)print(查看当前模型&#xff1a;, …

Java直接内存

直接内存如何使用 直接上代码&#xff0c;代码中有注释【对直接内存的分配以及释放】进行说明。 package cn.ordinary.util.io.file;import java.io.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.nio.*; import ja…

js一些底层

简介: JavaScript 是一种高级编程语言&#xff0c;通常在网页开发中用于前端和后端开发。JavaScript 的底层实现是浏览器或服务器上的 JavaScript 引擎。不同的引擎可能有不同的底层实现&#xff0c;但它们都有一个共同的目标&#xff0c;即执行 JavaScript 代码。 JavaScript …

MySQL中什么是分区表?列举几个适合使用分区表的场景。

MySQL中的分区表是一种数据库设计技术&#xff0c;它将一个大表物理地分割成多个较小的部分&#xff0c;这些部分被称为分区。虽然从逻辑上看&#xff0c;分区表仍然像一个单独的表&#xff0c;但在物理层面&#xff0c;每个分区都是存储在一个独立的文件上&#xff0c;可以位于…

ARM的三个按键实验

main.c #include "key_inc.h"//封装延时函数void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j){}}}int main(){//按键中断初始化key1_it_config();key2_it_config();key3_it_config();while(1){printf("in main pro\n");delay(1000);}re…

Android中的onConfigurationChanged的使用

一.什么时候调用&#xff1a; 设备配置发生变化的时候调用&#xff0c;比如&#xff1a;内外屏切换、屏幕方向&#xff08;orientation&#xff09;、键盘状态&#xff08;keyboard&#xff09;、语言环境&#xff08;locale&#xff09;、屏幕布局&#xff08;screenlayout&a…