[ICPC 2024 Yokohama R] Peculiar Protocol

news/2025/9/20 11:15:32/文章来源:https://www.cnblogs.com/liudagou/p/19102175

我们约定:

  • \(f_{l,r}\) 表示 \([l,r]\) 最多可以进行的操作次数(不一定要全部消掉)。
  • \(s_{l,r}\) 表示 \([l,r]\)\(a\) 的和。

考虑 \(f\) 应该怎么求解,根据区间 DP 的套路我们枚举中间点:

\[f_{i,j}=\max\limits_{k=i}^{j-1} f_{i,k}+f_{k+1,j} \]

显然,我们还需要处理这一次合并之后新增的操作次数。

如果 \(s_{i,j}\equiv r\times (f_{i,j}+1) \pmod d\),那么我们就可以多操作一次,即:

\[f_{i,j}\gets f_{i,j}+[s_{i,j}\equiv r\times (f_{i,j}+1) \pmod d] \]

引理:

一个区间可以被操作 \(c_0\) 次操作完,当且仅当 \(c_0\) 满足:

\[c_0\times r\equiv s_{i,j} \pmod{d}\wedge c_0\le f_{i,j} \]

因为 \(c_0\le f_{i,j}\)\(c_0\) 次操作肯定是可以进行的,我们只需要证明进行 \(c_0\) 次操作可以把 \([i,j]\) 全部消掉。
那么我们不妨先随便进行 \(c_0-1\) 次操作,那么消除的和一定是 \(r\times (c_0-1)+kd\),其中 \(k\) 是一个非负整数。

所以我们剩下的显然会是 \(r+k'd\)(因为第一个条件),所以就可以一次全部消掉。

假设最终的序列进行了 \(k\) 次操作,那么最后我们获得的收益就是:

\[\frac{s_{1,n}-kr}{d} \]

显而易见,我们应该让 \(k\) 尽可能小,于是就有了一个天才般的想法。

我们给每一个区间求出满足条件的最小的 \(c_0\)(没有满足条件的取 \(+\infty\)),然后再进行一次区间 DP 即可。

对于 \(c_0\) 具体的求解,因为 \(c_0\) 一定是 \([1,n]\) 中的整数,我们直接枚举所有的可能然后预处理出来就行了。

时间复杂度为 \(O(n^2)\),模拟赛的时候饭堂了,没有想到。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=505;
int n,d,r,a[N],f[N][N],g[N][N];
unordered_map<int,int> c0;
int s(int l,int r){return a[r]-a[l-1];}
signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);cin>>n>>d>>r;for(int i=1,s=0;i<=n;i++){cin>>a[i];if(a[i]%d==r) f[i][i]=1,g[i][i]=a[i]/d;s=(s+r)%d,a[i]+=a[i-1];if(!c0[s]) c0[s]=i;}for(int len=2;len<=n;len++){for(int i=1;i+len-1<=n;i++){int j=i+len-1,c0=::c0[s(i,j)%d];for(int k=i;k<j;k++){g[i][j]=max(g[i][j],g[i][k]+g[k+1][j]);f[i][j]=max(f[i][j],f[i][k]+f[k+1][j]);}f[i][j]+=!((s(i,j)-(f[i][j]+1)*r)%d);if(c0&&c0<=f[i][j]){g[i][j]=max(g[i][j],(s(i,j)-c0*r)/d);}}}cout<<g[1][n]<<'\n';return 0;
}

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

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

相关文章

YOLO入门理解 基础概念

核心概念YOLO(You Only Look Once):一种基于单阶段(one-stage)的目标检测框架,直接通过 CNN 回归得到检测框框与类别,特点是速度快、适合实时检测。 One-Stage 与 Two-Stage 检测:One-Stage:直接通过网络输出…

The 2025 ICPC Asia East Continent Online Contest (II)(C,D,E,H,I)

C. Jiaxun! C思路 首先来了解一下 \(Hall\) 定理,对于二分图 \(G<X+Y, M>\) ( \(X\) 表示左边点集,\(Y\) 表示右边点集,\(M\) 表示边集),令 \(W\) 表示 \(X\) 的子集, \(N(W)\) 表示 \(W\) 邻居的点集,则…

深入解析:不同上位开发语言、PLC下位平台、工业协议与操作系统平台下的数据类型通用性与差异性详解

深入解析:不同上位开发语言、PLC下位平台、工业协议与操作系统平台下的数据类型通用性与差异性详解2025-09-20 11:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal …

2022年十大Web黑客技术提名开启

本文宣布2022年十大Web黑客技术提名正式开始,旨在收集社区对最具创新性和可复用性的Web安全研究技术的提名,涵盖HTTP请求走私、缓存投毒、WAF绕过等前沿攻击手法。2022年十大Web黑客技术 - 提名开启 James Kettle 研…

13. LangChain4j + 加入检索增加生成 RAG(知识库) - Rainbow

13. LangChain4j + 加入检索增加生成 RAG(知识库) @目录13. LangChain4j + 加入检索增加生成 RAG(知识库)RAG 的概念LangChain4j RAG 的使用理论LangChain4j RAG 的实战最后: RAG 的概念官网:https://docs.langchain…

实用指南:微信小程序-6-页面布局和事件绑定以及页面跳转

实用指南:微信小程序-6-页面布局和事件绑定以及页面跳转2025-09-20 10:56 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

终旅之始——2025 . 9 . 20

开始的结束,结束的开始。今天是 2025 年九月的第三个星期六,也就是 CSP-2025 初赛的日子。 这是我最后一次以学生身份参加 CSP 了啊,想来还是有些悲伤。 2023 年,那时的我应该是紧张的,2024 年,那时的我的确是平…

CentOS 7 源码版 PhpMyAdmin 安装指南(适配 Nginx+PHP-FPM 环境) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入理解Django Admin只读字段与保存模型的自定义操作 - 详解

深入理解Django Admin只读字段与保存模型的自定义操作 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

深度学习(视觉注意力SeNet/CbmaNet/SkNet/EcaNet)

这些网络提供了一种即插即用的注意力模块,可以嵌入到现有的主流架构(如ResNet, VGG, MobileNet等)中,带来几乎无成本的性能提升。 四种网络核心思想: 1. SENet (Squeeze-and-Excitation Network): 通道注意力(C…

起床

(排名不分先后)奔流Dive back int timeyesterday once more等你下课晴天新宝岛power(Luna LePage)moon halo龙拳this is me裂缝中的阳光孤勇者明天会更好七里香爱的飞行日记稻香natural霍元甲凄美地没有理想的人不伤…

qoj6277 Linear Congruential Generator

SOLUTION FROM WUMIN4 题意 给出无穷序列 \(X_0\) 的值和 \(a,c\),令 \(X_{i+1}=(aX_i+c)\bmod m\)。 给出 \(l_1,r_1,l_2,r_2\),求: \[\sum_{i=l_1}^{r_1} \sum_{j=l_2}^{r_2}( X_i \bmod (X_j+1)) \]\(1\le T\le …

AI智能体服务优秀的平台架构设计

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Node.js、npm 和 npx:前端开发的三剑客 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

docker+k8s

docker和k8s一些共同点 1、k8s的最小单位是pod,pod里面就是docker中的容器(容器上面又加了一层),所以可以将pod理解为一个虚拟服务器(Pod 是容器的 “逻辑主机”,它内部的容器共享网络、存储等资源),当然现实的…

多模型适配突围:JBoltAI如何重构企业数智化转型新范式?

多模型适配突围:JBoltAI如何重构企业数智化转型新范式?2025年7月,麦肯锡发布的《技术趋势展望报告》指出,人工智能正由其他技术的“基础增强器”转变为具备自主决策能力的“虚拟同事”,其影响力已广泛渗透至技术融…

JBoltAI赋能制造业数智化转型:AI从概念到落地的Java实践

JBoltAI赋能制造业数智化转型:AI从概念到落地的Java实践01. 人工智能正在重塑制造业格局2025年,人工智能不再是遥远的概念,而是成为了推动产业变革的核心动力。工信部近期表示,正在研究出台 “人工智能+制造”专项…

JBoltAI赋能医疗数智化转型:AI大模型如何重塑医疗健康新范式

JBoltAI赋能医疗数智化转型:AI大模型如何重塑医疗健康新范式医疗健康领域的数智化挑战当前,全球医疗系统正面临巨大压力:医疗资源分布不均、诊疗效率待提升、专业医生培养周期长、海量医学知识难以即时更新与应用。…

JBoltAI多模态赋能:制造业数智化升级的新引擎

JBoltAI多模态赋能:制造业数智化升级的新引擎2025年,人工智能已成为推动产业数智化转型的核心驱动力。据麦肯锡研究显示,全球超过900万家Java企业正面临技术重构压力,传统Java开发体系在AI化转型过程中遭遇多模型适…

深入解析:YARN架构解析:深入理解Hadoop资源管理核心

深入解析:YARN架构解析:深入理解Hadoop资源管理核心pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…