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

P12508 「ROI 2025 Day2」程序员的日常

在天数 \(k\) 固定时,定义 \(p_i\) 为第 \(i\) 个连续段的起点。那么一个贪心是在保证第 \(i\) 段的 \(\max=a_{p_i}\) 时尽量最小化 \(a_{p_{i+1}}\)。于是有 \(p_{i+1}=\arg\min\limits\left\{a_j\mid p_i+1\le j\le \min(r_{p_i},n-k+i+1)\right\}\)。注意最后一个位置可能要特判。

对于原题,考虑对 \(k\) 从小往大扫,动态维护所有的 \(p\)。每次 \(k\) 增大只会让 \(n-k+i+1\) 减小 \(1\),如果这使 \(p_{i+1}\) 变化,那么 \(p_{i+1}=n-k+i+1\),于是之后的 \(j\ge i+1\) 也有 \(p_j=n-k+j\)

考虑维护出所有的连续段,每次只会删一段,我们只要支持快速加入一段。注意到从 \(p_i\) 推出 \(p_{i+1}\) 时,\(p_{i+1}\) 只和 \(k-i\) 有关,且 \(p_{i+1}=p_i+1\) 需要 \(k-i\) 不小于一个阈值 \(lim_i\)。这个 \(lim\) 是可以预处理的。找一段的右端点二分即可。

总复杂度 \(O(n\log n)\)

#include <bits/stdc++.h>
using namespace std;
template <typename T> void Chkmax(T &x, T y) { x = max(x, y); } const int kN = 3e5 + 5, kLog = 20;
int n, q, c;
int a[kN], lim[kN];
int ri[kN], suf[kN];
int qk[kN], qi[kN], ans[kN]; 
vector<int> qry[kN];struct ST1 {int mn[kLog][kN];int Min(int x, int y) { return (a[x] < a[y]) ? x : y; }void Build() {iota(mn[0] + 1, mn[0] + n + 1, 1);for(int i = 1; i < kLog; i++) {for(int l = 1; l + (1 << i) - 1 <= n; l++) {mn[i][l] = Min(mn[i - 1][l], mn[i - 1][l + (1 << i - 1)]);}}}int ArgMin(int l, int r) {int p = __lg(r - l + 1);return Min(mn[p][l], mn[p][r - (1 << p) + 1]);}
}st1;struct ST2 {int mx[kLog][kN];void Build() {memcpy(mx[0], lim, sizeof(mx[0]));for(int i = 1; i < kLog; i++) {for(int l = 0; l + (1 << i) - 1 <= n; l++) {mx[i][l] = max(mx[i - 1][l], mx[i - 1][l + (1 << i - 1)]);}}}int FindR(int x, int v) {for(int i = kLog - 1; ~i; i--) {if(x + (1 << i) - 1 > n) continue;if(mx[i][x] <= v) x += (1 << i);}return x - 1;}
}st2;void Init() {stack<int> stk;for(int i = 0; i <= n + 1; stk.push(i++)) {while(stk.size()) {int top = stk.top();if(a[top] < a[i]) ri[top] = i, stk.pop();else break;}}for(int i = n; i; i--) suf[i] = max(suf[i + 1], a[i]);
}struct Node {int l, r, v;Node() { }Node(int _l, int _r, int _v) {l = _l;r = _r;v = _v;}
};
Node seg[kN]; int main() {
//  freopen("1.in", "r", stdin);
//  freopen("1.out", "w", stdout);ios::sync_with_stdio(0), cin.tie(0);cin >> n >> q;for(int i = 1; i <= n; i++) cin >> a[i];a[n + 1] = n + 1;Init();st1.Build();for(int i = 1; i <= n; i++) {int l = i + 1, r = ri[i] + 1;while(l + 1 < r) {int mid = (l + r) >> 1;(st1.ArgMin(i + 1, mid) == i + 1) ? (l = mid) : (r = mid);}if(r <= ri[i]) lim[i] = n + i - r + 2;}st2.Build();for(int i = 1; i <= q; i++) {cin >> qk[i] >> qi[i];qry[qk[i]].push_back(i);if(qk[i] == 1) ans[i] = n;if(qk[i] == n) ans[i] = a[qi[i]];}seg[c = 1] = Node(0, 0, 0);for(int k = 2; k < n; k++) {int t = k - 2;while(c && (seg[c].v > n - k)) t = seg[c--].l - 1;for(int i = t; i < k; i++) { int pi = seg[c].v;if(pi == n - k) {seg[++c] = Node(i + 1, k - 1, pi);break;}if(lim[pi + i] <= pi + k) {int pos = st2.FindR(pi + i, pi + k) - pi;seg[++c] = Node(i + 1, pos + 1, pi);i = pos;continue;}int tp = pi + i;int pn = st1.ArgMin(tp + 1, min(n - k + i + 1, ri[tp])) - i - 1;seg[++c] = Node(i + 1, i + 1, pn);}for(int i : qry[k]) {int t = min(qi[i], k - 1);int l = 0, r = c + 1;while(l + 1 < r) {int mid = (l + r) >> 1;(seg[mid].r < t) ? (l = mid) : (r = mid);}int res = seg[r].v + t;if(qi[i] < k) ans[i] = a[res];else ans[i] = suf[min(ri[res], n)];}}for(int i = 1; i <= q; i++) cout << ans[i] << "\n";return 0;
}

相关文章:

P12508 「ROI 2025 Day2」程序员的日常

在天数 \(k\) 固定时,定义 \(p_i\) 为第 \(i\) 个连续段的起点。那么一个贪心是在保证第 \(i\) 段的 \(\max=a_{p_i}\) 时尽量最小化 \(a_{p_{i+1}}\)。于是有 \(p_{i+1}=\arg\min\limits\left\{a_j\mid p_i+1\le j\le \min(r_{p_i},n-k+i+1)\right\}\)。注意最后一个位置可能…...

手机上有哪些比较好用的待办事项提醒工具 - 指南

手机上有哪些比较好用的待办事项提醒工具 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace …...

Redis源码学习 -- 数据类型编码 -- List - -蓝蜗牛

1. 什么是List? List​​是Redis的数据类型之一,给用户提供一个双向链表的功能。核心优势是头尾操作O(1)。 2. List的编码模式 List的编码模式有两种:LISTPACK和QUICKLIST。(下文用全大写表示编码名称,首字母大写表示数据结构) Quicklist本身就是节点为Listpack的链表,所…...

乌班图无法登录桌面,只能终端登录用户。且有网拉不了包(DNS问题)

尝试startx解决dns问题 $ sudo vi /etc/resolv.conf 新增nameserver 127.0.1.1 #这里用的是阿里云的DNS服务器 nameserver 223.5.5.5 nameserver 223.6.6.6一定要更新一下 $ sudo apt-get update重新安装桌面$ sudo apt-get install xorg $ sudo apt-get install ubuntu-desk…...

事半功倍是蠢蛋53 tornado接口报错

新写的接口无法访问也不404,log也没有任何输出。 二分找出初始化的时候报错...

完整教程:云手机的技术架构可分为哪些

完整教程:云手机的技术架构可分为哪些pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importan…...

AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验

在人工智能与历史文化的美妙交融中,一套精密的评分算法正在重新定义游戏公平性与挑战性当我们谈论AI生成的文化游戏时,很多人首先想到的是华丽的视觉效果和智能的内容生成。然而,真正让TimeGuessr(https://timeguessr.online/)脱颖而出的,是其背后那套**精密而公平的评分算…...

Arkime:大规模开源网络分析与数据包捕获系统

Arkime是一个开源的大规模网络数据包捕获与分析系统,支持PB级流量处理,提供完整的PCAP存储、索引和搜索功能,帮助安全团队进行网络取证和威胁检测。Arkime:大规模开源网络分析与数据包捕获系统 项目描述 Arkime(前身为Moloch)是一个大规模、开源的网络数据包捕获和分析系…...

kylin SP2安装mysql 8.0.41

环境:OS:kylin SP2mysql:8.0.41 glibc2.17查看系统glibc版本[root@localhost soft]# ldd --version ldd (GNU libc) 2.28 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even…...

SAP采购订单数据获取

最近要配合公司AI做一个采购订单信息获取。 1、根据条件获取采购订单基本信息。 2、得到最早交易记录和最晚交易记录。 3、得出平均含税单价。 4、得出总交易条数。 AI的模型输入因为是不确定的,可能单个问,多个问,各种问,目前定义了采购订单、供应商、物料、日期等维度,这…...

get和post如何理解

基础概念: get主要是获取资源,post主要提交资源 传输链路上区别: get 在URL上携带参数,公开透明,不安全,幂等性(同一个请求多次执行,结果和只执行一次是一样的,不会产生额外的副作用,不会改变服务器的状态) 传递参数数量比较少(一般是2048个字符,但是具体还要看浏…...

me and my girlfriend WP复盘

一台非常简单的靶机复盘 vulnhub官网注释 Description Back to the Top Description: This VM tells us that there are a couple of lovers namely Alice and Bob, where the couple was originally very romantic, but since Alice worked at a private company, "C…...

顺序表

#include<iostream> #include<cstdlib> #define Maxsize 100 using namespace std; typedef struct//存储元素 {int data[Maxsize];int length; }Sqlist; //建立顺序表 typedef int CYDGOOD; //初始化线性表 void InitList(Sqlist *& L) {L = new Sqlist;L …...

能源管理的数字神经:MyEMS如何重塑能效认知

在工业设备的低沉轰鸣中,在写字楼宇的明暗交替间,能源如血液般在现代社会中流动。如何读懂这些流动的韵律,如何与这些无形的能量对话,成为当代能效管理的核心命题。MyEMS作为一套开源的能源管理系统,正在为各类组织构建这样的数字感知能力,让能源管理从模糊的经验艺术走向…...

开源・数据・能效:MyEMS 如何成为能源管理革新的核心引擎

在现代建筑的钢构骨架内,在工厂设备的运转节拍中,能量以电流、热能、冷量的形式不停流动。这些无形的流动蕴含着效率的秘密与优化的钥匙,而读懂这种语言需要特殊的解码能力。MyEMS作为一套开源能源管理系统,正扮演着这样的解码者角色——它将混沌的能源数据转化为清晰的行动…...

mysql回表,为什么你的查询总是慢半拍?

各位数据库爱好者们,不知道你们是否遇到过这样的场景:明明建了索引,查询速度却还是不理想?今天我们就来深入探讨这个让无数开发者头疼的问题——MySQL回表机制。理解了这个概念,你将能够轻松诊断并优化那些看似诡异的慢查询。 回表到底是什么? 简单来说,回表就是MySQL在…...

HMCL 3.6.17 Minecraft我的世界启动器

描述 HMCL是一个跨平台的Minecraft启动器,支持模组管理,游戏定制,自动安装(Forge、Fabric、Quilt、LiteLoader和OptiFine),Modpack创建,UI定制等。HMCL具有惊人的跨平台功能。 它不仅可以在不同的操作系统上运行,例如Windows,Linux和macOS, 但也支持多种CPU架构,如x…...

用自带的Nginx为gitlab做白名单

修改 /etc/gitlab/gitlab.rb文件vim /etc/gitlab/gitlab.rb如下这种写法不建议用 nginx[custom_gitlab_server_config] = "location ~* (.*) {deny 192.168.1.10;allow 192.168.1.0/24;deny all;proxy_cache off;proxy_pass http://gitlab-workhorse;root html;index …...

XHR/Fetch请求介绍与安全测试

XHR/Fetch请求介绍与安全测试目录XHR/Fetch是什么?所引发的安全问题XHR/Fetch是什么? XHR/Fetch 都是浏览器与服务器进行数据通信(即 API 调用)的两种主要技术。 简单来说,它们都是用来实现 AJAX(Asynchronous JavaScript and XML)理念的技术,即在不重新加载整个页面的…...

能流新智:MyEMS与开源时代的能源感知

在机器轰鸣的工厂、灯火通明的写字楼、冷热交替的数据中心,能量的流动从未停止。而真正理解这些流动,并与之对话,需要一种新的语言和感知能力。MyEMS,作为一个开源能源管理系统,正是这种感知能力的构建者——它让不可见的能源变得可见,让无序的消耗变得可解,最终让能源管…...

​​普科科技罗氏线圈应用指南:精准掌控电流测量的艺术​​

普科罗氏线圈以无磁饱和、宽频带、灵活轻便优势,提供高效精准电流测量解决方案。在电力测量、新能源及工业驱动领域,安全、精准地测量电流,尤其是高频、大电流信号,是一项核心需求。传统电流互感器(CT)易饱和、体积大、安装不便的局限性日益凸显。​​普科科技(PUKY-Tec…...

go mod基础

新建项目 并且新建 mod 管理 mkdir go_study cd go_study && go mod init studygo mod tid 下载依赖以及移除未使用的依赖require github.com/gin-gonic/gin v1.9.0...

go 变量作用域

1...

Oracle笔记:测试update语句关联表扫描的次数

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。Oracle笔记:测试update语句关联表扫描的次数下面是测试一下update语句…...

​​电流互感器选型指南:以普科科技产品为例

普科科技电流互感器选型注重测量与保护需求,明确参数、合理选型以确保安全与精度。在电力测量、监控和保护系统中,电流互感器(CT)扮演着至关重要的角色。它不仅是系统安全运行的"感知器官",更是确保数据准确、保护可靠的关键部件。面对多样的应用场景和复杂的工…...

.NET驾驭Word之力:玩转文本与格式

在前面的文章中,我们已经了解了Word对象模型的核心组件,包括Application、Document和Range对象。掌握了这些基础知识后,我们现在可以进一步深入到文档内容的处理,特别是文本的插入和格式化操作。本文将详细介绍如何使用MudTools.OfficeInterop.Word库来操作Word文档中的文本…...

读书笔记:白话解读位图索引:什么时候该用,什么时候千万别用?

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本文为个人学习《Expert Oracle Database Architecture Techniques and…...

泰克CT-6交流电流探头测量原理

泰克 CT-6 交流电流探头是一款在电气测量领域广泛使用的专业工具。其测量原理基于电磁感应定律,通过精巧的设计实现对交流电流的精确测量。 从结构上看,泰克 CT-6 交流电流探头主要由磁芯、线圈和信号处理电路等部分构成。当交流电流通过导线时,会在导线周围产生变化的磁场,…...

结构体成员赋值问题

在函数里这样写对吗stCalc->stStitchingRule={.segment_count = 3, .segment_starts = {0, 336, 900}, .segment_lengths = {300, 100, 112}, .stitched_total_length = 512}; 问题分析 在C语言中,直接在函数内对结构体成员(如 stCalc->stStitchingRule)使用​​复合字…...

RepositoryItemGridLookUpEdit 使用 ok

private void Form1_Load(object sender, EventArgs e){下拉初始化();gridControl1.DataSource = DemoData.GetGridData();}private void 下拉初始化(){GridView view = rep_Grid.View;view.Columns.Add(new GridColumn { Caption = "货号", FieldName = "Goods…...

wso2~系统端口总结

好的,这是 WSO2 API Manager 中这些常见端口的详细总结。了解这些端口对于部署、运维和故障排查至关重要。 我将它们分为 API 流量端口、管理/控制平面端口 和 内部通信端口 三类。一、API 流量端口 (API Traffic Ports) 这些端口用于处理实际的 API 调用(数据平面流量)。端…...

故障处理:19C RAC改私网IP后重建集群时报网络找不到

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。今天在回复23年安装的ARM环境的19C的集群时,将服务器的私有网络和共有…...

谈谈程序猿的职业方向

大学生在校期间可能会有这样的疑问:将来就业干啥好呢? 如果你是学计算机的,将来想进入软件和互联网行业,恭喜,这是个好行业,薪水很高, 也不需靠关系,一切靠实力说话,不需要有个好爸爸。 坏处是,这个行业需要极为繁重的脑力和体力劳动,加班也是司空见惯的事情。 接下…...

Flash Attention详解

Flash Attention 并没有减少 Attention 的计算量,也不影响精度,但是却比标准的Attention运算快 2~4 倍的运行速度,减少了 5~20 倍的内存使用量。究竟是怎么实现的呢? Attention 为什么慢? 此处的“快慢”是相对而言的。严格意义上来说,相比于传统的 RNN,Transformer中的…...

eclipse插件调用保护后的jar包流程

jar包如何调用使用 导入jar包创建好项目后,进入项目后,创建libs文件夹,将jar包放入libs文件夹内; 选中项目,点击Runtime->Add选项,添加libs里的jar包;项目配置 当jar包导入成功后,对此项目进行配置。选中Build,将libs目录下所需要的jar包勾选上;添加成功后,点击b…...

通义上线 FunAudio-ASR,噪声场景幻觉率降 70%;盒智科技推出 AI 口语练习陪伴设备 Lookee 丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「有看点的活动」,但内容仅代表编辑的个人观点…...

reLeetCode 热题 100-11 盛最多的谁 - MKT

reLeetCode 热题 100-11 盛最多的谁 1 bu 不合格答案 暴力// 时间超时int my_1(vector<int>& height){// x * hign_minint max_=0;for(int i=0; i<height.size()-1;i++){for(int j=i+1; j<height.size();j++){int high_= std::min(height[i],height[j]);int …...

AI 视频生成网站 Viddo AI 的 SEO 分析和优化建议

AI 视频生成网站 Viddo AI 的 SEO 分析和优化建议有个朋友的新网站 Viddo AI - AI 生成图片和视频上线了,我提了一些 SEO 和前端方面的问题和修改意见,顺便记录到蓝星空的 Blog,希望对其他朋友也有一点帮助,可能也有一些考虑不周的地方,欢迎大家指正!SEO方面的问题和修改…...

k3s 离线部署流程(内网环境)

k3s 离线部署流程(内网环境) 一、准备工作 1. 下载 k3s 安装相关文件(在有外网的跳板机上)k3s 安装脚本curl -sfL https://get.k3s.io -o install_k3s.shk3s 二进制文件curl -LO https://github.com/k3s-io/k3s/releases/download/<k3s版本>/k3sk3s 镜像包wget https…...

GPS简单模拟

注册回调 LocationListener,listener 被封装在 receiver 中@Overridepublic void requestLocationUpdates(LocationRequest request, ILocationListener listener,PendingIntent intent, String packageName) {...Receiver receiver;if (intent != null) {receiver = getRecei…...

C# Avalonia 15- Animation- XamlAnimation

C# Avalonia 15- Animation- XamlAnimation同样用两种方式实现动画,各位自行选择。实现了一个ArithmeticConverter类。 ArithmeticConverter.cs类using Avalonia.Data.Converters; using System; using System.Collections.Generic; using System.Globalization; using System…...

多个表格汇总到一个表格不同的sheet,vba宏

`Sub MergeWorkbookToSheets()Dim Path As StringDim Filename As StringDim Wb As WorkbookDim ws As WorksheetDim ThisWb As WorkbookDim Newsheet As Worksheet设置目标文件夹路径,请修改为您的实际路径Path = "C:\Users\haifeng\OneDrive\桌面\测试bom\" 注意:…...

python读取Excel表合并单元格以及清除空格符

读取合并单元格并保留合并信息 当我们只是使用 pandas 的 read_excel 方法读取 Excel 文件时,我们可能会遇到一个很棘手的问题:合并单元格的信息将会丢失,从而导致我们的数据出现重复或缺失的情况。 在本篇文章中将介绍使用 pandas 正确地读取包含合并单元格的 Excel 表格,…...

算法作业第一周

大厂代码规范代码格式大括号的使用约定。 如果是大括号内为空,则简洁地写成{}即可,不需要换行; 如果是非空代码块则:左大括号前不换行。左大括号后换行。右大括号前换行。右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。 任何二目、三目运算符的左右两…...

域名购买方案

https://linux.do/t/topic/963151/21...

Anby_の模板题集

洛谷版。 博客备份版。 普及- B3647 【模板】Floyd #include<bits/stdc++.h> #define x first #define y second using namespace std; const int N=2e2+10,inf=0x3f3f3f3f,mod=1e9+7; typedef unsigned long long ull; typedef pair<int,int> pii; typedef long l…...

AI 编程的“最后一公里”:当强大的代码生成遇上模糊的需求

随着AI编程工具的崛起,代码生成效率极大提升,但AI与实际项目需求间的“鸿沟”却日益凸显。本文探讨了在AI驱动的开发流程中,结构化、高质量的开发文档如何成为连接“模糊想法”与“精准代码”的关键桥梁,有效打通AI编程的“最后一公里”。引言:AI 编程时代的“新瓶颈” 20…...

ctfshowWeb应用安全与防护(第四章)wp

Session固定攻击 登录test账号,给admin发送消息回到主页发现用户名变成了admin,获得了flagJWT令牌伪造 先随便输入一个用户名,获得jwt tokenJWT伪造网站 JSON Web Tokens - jwt.io 由于没有校验签名, 我们可以采用 None 攻击,将alg改为none,admin改为True修改cookie,刷新…...

创建sshkey并链接git

以 Hugging Face 账户为示例: 生成ssh key到指定文件 ssh-keygen -t rsa -C "email.com" -f C:\Users\Administrator\.ssh\huggingface将生成的key放到hugging_face上 https://huggingface.co/settings/keyswindow powershell: Get-Service ssh-agent | Set-Servic…...

使用bash脚本检测网站SSL证书是否过期 - sherlock

#!/bin/bash# 加载环境变量 . /etc/profile . ~/.bash_profile . /etc/bashrc# 脚本所在目录即脚本名称 script_dir=$( cd "$( dirname "$0" )" && pwd ) script_name=$(basename ${0}) readFile="${script_dir}/domain_ssl.info"# 检查…...