算法学习 -- 多路归并

思想 : 

抽象出来一个例子 : 合并k个长度相等升序列表 : 

抽象成一张表也就是 :  

 做法 : 用一个小根堆来维护 , 首先将每个序列的第一个元素放入队列中 , 然后模拟,每次取出队头,作为结果序列的下一个元素 , 然后向堆中存入该元素序列中的下一个元素 ,直到所有元素取完为止;

例题 : 

1262 - 鱼塘钓鱼

1262. 鱼塘钓鱼 - AcWing题库


 

c++代码 : 

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 110 ;
typedef pair<int, int> PII;
int a[N] , b[N] , c[N] ;
int n , T ;int main(){cin >> n ; for(int i=1;i<=n;i++) cin >> a[i] ;for(int j=1;j<=n;j++) cin >> b[j] ;for(int k=2;k<=n;k++) cin >> c[k] , c[k] += c[k-1] ;cin >> T ;int ans = 0 ;// 只在前k个池塘钓鱼for(int i=1;i<=n;i++){int t = T - c[i] ; // 本次钓鱼专用时间 priority_queue<PII> que ;for(int j=1;j<=i;j++) que.push({a[j],j}) ;int res = 0 ;while(!que.empty() && t > 0){auto it = que.top() ; que.pop() ;int x = it.first , idx = it.second ; // 获取元素和下标res += x ;int xx = x - b[idx] ;if(xx > 0) que.push({xx , idx}) ;t -- ;}ans = max(ans , res) ;}cout << ans << endl ;
}

62 . 丑数

62. 丑数 - AcWing题库

class Solution {
public:int getUglyNumber(int n) {if(n <= 1) return n;vector<int> f(1,1);int i = 0, j = 0, k = 0;long long t = 0;while(--n){t = min(f[i] * 2, min (f[j] * 3, f[k] * 5));if(t == f[i] * 2) i++;if(t == f[j] * 3) j++;if(t == f[k] * 5) k++;f.push_back(t);}return f.back();}
};

 参考 : 多路归并算法从理论到应用(易懂)-CSDN博客

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

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

相关文章

关于java定时任务

cron生成器 corn从左到右&#xff08;用空格隔开&#xff09;&#xff1a;秒 分 小时 月份中的日期 月份 星期中的日期 年份 Seconds Minutes Hours DayofMonth Month DayofWeek Yea Cron表达式范例&#xff1a; 每隔5秒执行一次&#xff1a;*/5 * * * * ? 每隔1分钟执行一次…

系统架构最佳实践 -- 人力资源(E-HR)应用架构设计

当谈到人力资源管理时&#xff0c;电子人力资源&#xff08;E-HR&#xff09;系统已经成为现代企业不可或缺的组成部分。E-HR系统的设计与实践对于提高组织的人力资源管理效率和员工体验至关重要。本文将探讨E-HR应用架构的设计与实践&#xff0c;以及如何借助信息技术优化人力…

第 6 章 Gazebo仿真环境搭建(自学二刷笔记)

6.6.4 Gazebo仿真环境搭建 到目前为止&#xff0c;我们已经可以将机器人模型显示在 Gazebo 之中了&#xff0c;但是当前默认情况下&#xff0c;在 Gazebo 中机器人模型是在 empty world 中&#xff0c;并没有类似于房间、家具、道路、树木... 之类的仿真物&#xff0c;如何在 …

第十四届蓝桥杯C/C++大学B组题解(二)

6、岛屿个数 #include <bits/stdc.h> using namespace std; const int M51; int T,m,n; int vis[M][M],used[M][M]; int dx[]{1,-1,0,0,1,1,-1,-1}; int dy[]{0,0,1,-1,1,-1,1,-1}; string mp[M]; struct node{//记录一点坐标 int x,y; }; void bfs_col(int x,int y){ qu…

springBoot 在过滤器中如何捕获抛出的异常并自定义返回信息 (Filter doFilter)解决方案

在使用 servlet 过滤器时 发现异常报错 不准确&#xff0c;定义的 全局异常处理 好像失效了&#xff0c;过滤器里报错每次都会返回 状态码 &#xff1a;500 错误信息为 “Internal Server Error” 真正的异常只能输出的控制台&#xff0c;抛出不到前端。 问题&#xff1a; 一般…

python实例1.4:模拟用户登录过程(详解及其知识点拓展)

目录 一、主程序及代码分析 二、代码升级,安全优化

Linux安全认证隐匿插件:PAM配置探秘

Linux安全认证隐匿插件&#xff1a;PAM配置探秘 初遇PAM&#xff1a;踏入未知领域 案例&#xff1a; 现网环境升级总是报错端口已被占用&#xff0c;原因是执行升级包中的一条命令时&#xff0c;返回多了一条日志打印&#xff0c;导致升级包中解析命令执行结果错误 当时是第…

【图论】图的存储--链式前向星存图法以及深度优先遍历图

图的存储 介绍 无向图-就是一种特殊的有向图-> 只用考虑有向图的存储即可 有向图 邻接矩阵邻接表 邻接表 存储结构: (为每一个点开了一个单链表,存储这个点可以到达哪个点) 1:3->4->null2:1->4->null3:4->null4:null 插入一条新的边 比如要插一条边&am…

STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (e)

接上文&#xff0c;继续来看这个函数&#xff1a; /*** brief Initializes the GPIOx peripheral according to the specified* parameters in the GPIO_InitStruct.* param GPIOx: where x can be (A..G) to select the GPIO peripheral.* param GPIO_InitStruct:…

C语言 typedef

C 语言提供了 typedef 关键字&#xff0c;您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE&#xff1a; typedef unsigned char BYTE;在这个类型定义之后&#xff0c;标识符 BYTE 可作为类型 unsigned char 的缩写&#xff0c;例如&#xff1…

SpringCloudAlibaba整合

springcloud Alibaba系列整合 1、SpringCloudAlibaba-概述&#xff08;一&#xff09; 2、SpringCloudAlibaba-整合nacos&#xff08;二&#xff09; 3、SpringCloudAlibaba-整合openfeign和loadbalence&#xff08;三&#xff09; 4、SpringCloudAlibaba-整合sentinel&am…

C++ stl容器vector的认识与简单使用

目录 前言&#xff1a; 本篇文档图片引用自&#xff1a;https://cplusplus.com/reference/vector/vector/ 1.vector的结构 2.迭代器类型 3.构造函数 4.迭代器 反向迭代器遍历 const迭代器 5.容量 maxsize shrink_to_fit reverse resize 6.修改 insert和erase 7.…

[C#]OpenCvSharp利用MatchTemplate实现多目标匹配

【效果展示】 原图 模板图 匹配结果&#xff1a; 【实现部分代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using…

单链表专题

文章目录 目录1. 链表的概念及结构2. 实现单链表2.1 链表的打印2.2 链表的尾插2.3 链表的头插2.4 链表的尾删2.5 链表的头删2.6 查找2.7 在指定位置之前插入数据2.8 在指定位置之后插入数据2.9 删除pos节点2.10 删除pos之后的节点2.11 销毁链表 3. 链表的分类 目录 链表的概念…

苹果电脑怎么彻底删除软件 苹果电脑卸载软件在哪里 cleanmymac x怎么卸载 mac废纸篓怎么删除

苹果电脑卸载软件的方法相对直观和简单&#xff0c;尤其是对于习惯使用Mac操作系统的用户来说。以苹果MacBook Pro为例&#xff0c;以下是卸载软件的详细步骤、使用方法、注意事项与建议。 一、卸载软件的详细步骤&#xff1a; 1. 打开Mac电脑&#xff0c;进入桌面&#xff0c…

React面试

React渲染流程(重点) jsx描述界面 jsx babel render function>vdom vdom fiber 在进行渲染 vdom 转换fiber reconcile 转换过程创建dom commit 到domvdom React Element 对象, 只记录了子节点, 没有记录兄弟节点, 因为渲染不可中断 fiber fiberNode 对象, 是一个链表 父节…

linux大文件IO

在Linux中处理大文件&#xff08;通常指大小超过2GB的文件&#xff09;时&#xff0c;需要使用特定的系统调用和标志&#xff0c;以确保程序能够正确地处理大文件的读写。这主要是因为在32位系统上&#xff0c;传统的文件偏移量和文件大小使用off_t类型表示&#xff0c;它通常是…

HarmonyOS 开发-MpChart运动健康场景实践案例

介绍 MpChart是一个包含各种类型图表的图表库&#xff0c;主要用于业务数据汇总&#xff0c;例如销售数据走势图&#xff0c;股价走势图等场景中使用&#xff0c;方便开发者快速实现图表UI&#xff0c;MpChart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图…

SQLite数据库概述及在Java中的应用

## 什么是SQLite数据库&#xff1f; SQLite是一种轻量级的数据库管理系统&#xff0c;它不需要一个独立的服务器进程或操作系统的运行&#xff0c;而是将整个数据库&#xff0c;包括定义、表、索引以及数据本身&#xff0c;全部存储在一个独立的磁盘文件中。SQLite的设计理念是…

shell命令行中脚本特殊注释指定脚本解释器

在Linux系统中&#xff0c;#!/usr/bin 是一个特殊的注释&#xff0c;通常称为"shebang" 或 “hashbang”。用于指定脚本的解释器。 即它的目的是告诉操作系统应该使用哪个解释器来执行脚本。 通过在脚本的第一行使用#!&#xff0c;后面跟着解释器的路径&#xff0c;…