acwing算法提高之基础算法--排序、RMQ

目录

  • 1 介绍
  • 2 训练

1 介绍

本博客介绍排序、RMQ相关的题目。

2 训练

题目1:105七夕祭

C++代码如下,

#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;const int N = 100010;int row[N], col[N], s[N], c[N];LL work(int n, int a[]) {for (int i = 1; i <= n; ++i) s[i] = s[i-1] + a[i];if (s[n] % n) return -1;int avg = s[n] / n;c[1] = 0;for (int i = 2; i <= n; ++i) c[i] = s[i-1] - (i-1) * avg;sort(c + 1, c + n + 1);LL res = 0;for (int i = 1; i <= n; ++i) res += abs(c[i] - c[(n+1)/2]);return res;
}int main() {int n, m, cnt;scanf("%d%d%d", &n, &m, &cnt);while (cnt--) {int x, y;scanf("%d%d", &x, &y);row[x]++, col[y]++;}LL r = work(n, row);LL c = work(m, col);if (r != -1 && c != -1) printf("both %lld\n", r + c);else if (r != -1) printf("row %lld\n", r);else if (c != -1) printf("column %lld\n", c);else printf("impossible\n");return 0;
}

题目2:106动态中位数

C++代码如下,

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>using namespace std;int main() {int T;scanf("%d", &T);while (T--) {int n, m;scanf("%d%d", &m, &n);printf("%d %d\n", m, (n + 1) / 2);priority_queue<int> down;priority_queue<int, vector<int>, greater<int>> up;int cnt = 0;for (int i = 1; i <= n; ++i) {int x;scanf("%d", &x);if (down.empty() || x <= down.top()) down.push(x);else up.push(x);if (down.size() > up.size() + 1) up.push(down.top()), down.pop();if (up.size() > down.size()) down.push(up.top()), up.pop();if (i % 2) {printf("%d ", down.top());if (++cnt % 10 == 0) puts("");}}if (cnt % 10) puts("");}return 0;
}

题目3:107超快速排序

C++代码如下,

#include <cstdio>typedef long long LL;const int N = 500010;int n;
LL q[N], w[N];LL merge_sort(int l, int r) {if (l == r) return 0;int mid = l + r >> 1;LL res = merge_sort(l, mid) + merge_sort(mid + 1, r);int i = l, j = mid + 1, k = 0;while (i <= mid && j <= r) {if (q[i] <= q[j]) w[k++] = q[i++];else {res += mid - i + 1;w[k++] = q[j++];}}while (i <= mid) w[k++] = q[i++];while (j <= r) w[k++] = q[j++];for (int i = l, j = 0; i <= r; ++i, ++j) q[i] = w[j];return res;
}int main() {while (scanf("%d", &n), n) {for (int i = 0; i < n; ++i) scanf("%d", &q[i]);printf("%lld\n", merge_sort(0, n - 1));}return 0;
}

题目4:1273天才的记忆

C++代码如下,

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>using namespace std;const int N = 200010, M = 18;int n, m;
int w[N];
int f[N][M];void init() {for (int j = 0; j < M; ++j) {for (int i = 1; i + (1 << j) - 1 <= n; ++i) {if (!j) f[i][j] = w[i];else f[i][j] = max(f[i][j-1], f[i+(1 << j - 1)][j-1]);}}
}int query(int l, int r) {int len = r - l + 1;int k = log(len) / log(2);return max(f[l][k], f[r-(1 << k) + 1][k]);
}int main() {scanf("%d", &n);for (int i = 1; i <= n; ++i) scanf("%d", &w[i]);init();scanf("%d", &m);while (m--) {int l, r;scanf("%d%d", &l, &r);printf("%d\n", query(l, r));}return 0;
}

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

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

相关文章

TouchGFX 总结

文章目录 使用中文字体多屏幕间交换数据UI to MCUMCU to UI API文档参考横竖屏切换 使用中文字体 添加一个textArea&#xff0c;默认的英文文本可见&#xff0c;输入中文字体后就看不见了&#xff0c;是因为这个默认的字体不支持中文&#xff0c;改一下字体就可以了&#xff1…

全方位解析Node.js:从模块系统、文件操作、事件循环、异步编程、性能优化、网络编程等高级开发到后端服务架构最佳实践以及Serverless服务部署指南

Node.js是一种基于Chrome V8引擎的JavaScript运行环境&#xff0c;专为构建高性能、可扩展的网络应用而设计。其重要性在于革新了后端开发&#xff0c;通过非阻塞I/O和事件驱动模型&#xff0c;实现了轻量级、高并发处理能力。Node.js的模块化体系和活跃的npm生态极大加速了开发…

网络基础-网络设备介绍

本系列文章主要介绍思科、华为、华三三大厂商的网络设备 网络设备 网络设备是指用于构建和管理计算机网络的各种硬件设备和设备组件。以下是常见的网络设备类型&#xff1a; 路由器&#xff08;Router&#xff09;&#xff1a;用于连接不同网络并在它们之间转发数据包的设备…

深入理解网络原理2----UDP协议

文章目录 前言一、UDP协议协议段格式&#xff08;简图&#xff09;校验和 二、UDP与TCP 前言 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即以多个计算机协同⼯作来完成业务&#xff0c;就有了⽹络互连。 一、UDP协议 协…

java发送请求-http和https

http和https区别 1、http是网络传输超文本协议&#xff0c;client---- http------ server 2、httpshttpssl证书&#xff0c;让网络传输更安全 &#xff0c;client---- httpssl------ server 3、ssl证书是需要客户端认可的&#xff0c;注意官方证书和jdk生成的证书的用户来使…

【Github】将github仓库作为图床使用

创建github仓库 首先创建一个github仓库专门用于存储图片&#xff0c;具体步骤如下&#xff1a; 1.点击新的仓库按钮 2.初始配置&#xff1a;随便填写一个仓库名&#xff1b;这里的仓库状态一定要是public公开的&#xff0c;不然后面访问不了图片 下载PicGo PicGo官网 在A…

获取淘宝商品销量数据接口

淘宝爬虫商品销量数据采集通常涉及以下几个步骤&#xff1a; 1、确定采集目标&#xff1a;需要明确要采集的商品类别、筛选条件&#xff08;如天猫、价格区间&#xff09;、销量和金额等数据。例如&#xff0c;如果您想了解“小鱼零食”的销量和金额&#xff0c;您需要设定好价…

【面试经典 150 | 数组】文本左右对齐

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容进行回顾…

C语言 | Leetcode C语言题解之第61题旋转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* rotateRight(struct ListNode* head, int k) {if (k 0 || head NULL || head->next NULL) {return head;}int n 1;struct ListNode* iter head;while (iter->next ! NULL) {iter iter->next;n;}int add n…

【LeetCode刷题记录】230. 二叉搜索树中第K小的元素

230 二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1…

屏蔽罩材质和厚度对屏蔽效能的影响

​ 一&#xff0e;屏蔽效能的影响因素 屏蔽效能的影响因素主要有两个方面&#xff1a;屏蔽材料的特性和厚度&#xff1b;如下图所示&#xff0c;电磁波经过不同媒介时&#xff0c;会在分界面形成反射&#xff0c;穿过界面的电磁波一部分被反射回去&#xff0c;这部分能量损失…

音视频开发之旅——实现录音器、音频格式转换器和播放器(PCM文件转换为WAV文件、使用LAME编码MP3文件)(Android)

本文主要讲解的是实现录音器、音频转换器和播放器&#xff0c;在实现过程中需要把PCM文件转换为WAV文件&#xff0c;同时需要使用上一篇文章交叉编译出来的LAME库编码MP3文件。本文基于Android平台&#xff0c;示例代码如下所示&#xff1a; AndroidAudioDemo Android系列&am…

Leetcode—163. 缺失的区间【简单】Plus

2024每日刷题&#xff08;126&#xff09; Leetcode—163. 缺失的区间 实现代码 class Solution { public:vector<vector<int>> findMissingRanges(vector<int>& nums, int lower, int upper) {int n nums.size();vector<vector<int>> an…

docker部署nginx并配置https

1.准备SSL证书&#xff1a; 生成私钥&#xff1a;运行以下命令生成一个私钥文件。 生成证书请求&#xff08;CSR&#xff09;&#xff1a;运行以下命令生成证书请求文件。 生成自签名证书&#xff1a;使用以下命令生成自签名证书。 openssl genrsa -out example.com.key 2048 …

目标检测——铁路轨道故障数据集

一、重要性及意义 安全性保障&#xff1a;铁路作为重要的交通工具&#xff0c;其安全性能直接关系到乘客和货物的安全。铁路轨道故障&#xff0c;如裂缝、变形、错位、缺失紧固件等&#xff0c;都可能引发列车脱轨、倾覆等严重事故。因此&#xff0c;及时发现和修复这些故障&a…

【LLM第二篇】stable diffusion扩散模型、名词解释

最近在整理大模型的相关资料&#xff0c;发现了几个名词&#xff0c;不是很懂&#xff0c;这里整理一下&#xff1a; stable diffusion&#xff08;SD)模型&#xff1a; 扩散模型&#xff08;Diffusion model&#xff09;的一种&#xff0c;主要用于生成高质量的图像&#xf…

论文阅读笔记(AAAI 20)Order Matters

个人博客地址 注&#xff1a;部分内容参考自GPT生成的内容 论文笔记&#xff1a;Order Matters&#xff08;AAAI 20&#xff09; 用于二进制代码相似性检测的语义感知神经网络 论文:《Order Matters: Semantic-Aware Neural Networks for Binary Code Similarity Detection》…

MongoDB的分片集群

MongoDB分片技术 介绍 ​ 分片&#xff08;sharding&#xff09;是MongoDB用来将大型集合分割到不同服务器上采用的方法。分片这种说法起源于关系型数据库。但是实际上非关系型数据库在分片方面相比于传统的关系型数据库更有优势。 ​ 与MySQL分库方案对比&#xff0c;MongoDB…

Hibernate的QBC与HQL查询

目录 1、Hibernate的QBC查询 2、Hibernate的HQL查询 3、NatvieSQL原生查询 1、Hibernate的QBC查询 Hibernate具有一个直观的、可扩展的条件查询API public class Test { /** * param args */ public static void main(String[] args) { Session sessio…

Deep Learning Part Eight--Attention 24.5.4

01.在翻译、语音识别等将一个时序数据转换为另一个时序数据的任务中&#xff0c;时序数据之间常常存在对应关系 引入了Attention的概念&#xff0c;介绍了Attention的注意力机制&#xff1a; 困难出现&#xff0c;seq2seq的问题引入&#xff1a;固定化长度问题&#xff08;过于…