CSP2024-18

news/2024/9/18 3:43:58/文章来源:https://www.cnblogs.com/Luxinze/p/18407004

A

题意:给出两个 \(n \times m\) 的矩阵 \(A, B\),一次操作可以使 \(A\)\(B\) 的一行/列加一。求使 \(A, B\) 相等的最小操作次数。

数据范围:\(n, m \le 10^5, n \times m \le 10^5\)

\(X = A - B\),则题目转化为每次可以使一行/列加减一,求使得 \(X\) 全零的最小操作数。

\(r_i\) 表示第 \(i\) 行的操作增量,\(c_i\) 表示第 \(i\) 列的操作增量,显然对于一行而言要么加要么减,因此最后代价等于 \(\sum \vert r_i\vert + \vert c_i\vert\)

对于任意 \(i, j\),有 $r_i + c_j = -x_{i, j} $。

如果 \(r_1 = t\) 确定,剩下的 \(n + m - 1\) 个未知数都能确定,其中 \(c_i = -x_{1, i} - t,\ r_i = -x_{i, 1} - c_1\)

证明,如果有解,则 \(r_1\) 可以是任何整数。

假设当前已经达到一个全零局面,强制使 \(r_1\) 的值加一,那么对所有的 \(c_i\) 减一,所有的 \(r_{i > 1}\) 加一,则可达到另一个全零局面。

即随便检验一个 \(t\) 就能判断无解。

现在目的是最小化 \(\sum \vert -x_{1, i} - t\vert + \sum \vert -x_{i, 1} + x_{1, 1} + t\vert\),即最小化 \(t\)\(-x_{1, i}\)\(x_{i, 1} - x_{1, 1}\) 的距离,典型的贪心。

submission

B

题意:给定长度为 \(n\) 的 01 序列 \(a, b\),定义 \(f(l, r) = [\text{区间内 } 1 \text{ 个数大于 } 0]\)。输出一个 01 序列 \(c\),其中 \(c_k = \prod_{i = k}^n [f(i - k + 1, i) = b_k]\)

把 0 看作 -1 求出前缀和,那么有 \(f(l, r) = [s_r > s_{l - 1}]\)

根据 \(s_i\) 从小到大,\(i\) 从大到小插入每个 \(i\),如果插入某个 \(b_i = 0\) 且存在 \(j < i\) 已经被插入则 \(k = i - j\) 不合法。

如果反着插入一个 \(b_{i} = 1\) 且存在 \(j < i\)\(i - j\) 不合法。

bitset 维护每个插入 \(j\)\(n - j\),右移 \(n - i\) 就是 \(i - j\),时间复杂度 \(O(\dfrac{n^2}{w})\)。submission

C

题意:给出以 \(1\) 为根的一棵树,每个点有三个参数 \(X_u, Y_u, Z_u\)

\(u\)(不含)到根之间 \(up_u\) 个点中至少选 \(X_u\) 个,设其到 \(u\) 的距离和为 \(S_1\)

\(u\)(不含)的子树 \(down_u\) 个点中至少选 \(Y_u\) 个,设其距离和为 \(S_2\)。满足两部分加起来恰好选了 \(m\) 个点。

对于每个 \(1 \sim n\),输出 \(\vert S_1 - S_2 + Z_u\vert\) 的最小值。\(m \le n \le 5 \times 10^5, \vert Z_u\vert \le 10^9,\ \text{1s}\)

\(S = S_1 - S_2\),要找和 \(-Z_u\) 最接近的。

\(S\) 的上下界容易求得:上界:上方尽可能靠上选 \(\min(up, m - Y_u)\) 个点,下方剩余的点也尽可能靠上;下界类似。

现在证明,\(v \in [\min, \max]\) 几乎全能取到。

从最小值的状态开始。如果存在一个被选节点的父亲没有被选且不是 \(u\),改选他的父亲,\(S \to S + 1\)

如果不存在这样一个点,则 \(u\) 下方都尽可能靠上,上方也尽可能靠上。

同一深度的点是可以交换的,这样可以平衡到最终局面。

由于是从最小局面开始的,可能 \(u\) 下方有多余节点,\(u\) 上方有空余节点,可以把一个儿子替换父亲。

这样会使 \(S \to S + 2\),解决方案是使其他被选点改成其儿子。

这样的点几乎都能找到,除非「改之前下满或只有一个点」且「改之后上满或只有一个点」。

不会有改之前上满的情况,如果上满且未到达最大局面,可以调整下方同深度的点到达。

对于 4 个 corner-case 特判即可。

剩下部分只需要求出上下界,到根的链非常好处理,子树内选点则可以线段树合并子节点深度,支持查询前/后 \(k\) 大值的和。

submission

D

流。

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

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

相关文章

[设计模式] Cola-StateMachine : 一个轻量实用的Java状态机框架

1 概述:状态机 1.0 状态机 vs 工作流在介绍状态机之前,先介绍一个工作流(WorkFlow),初学者通常容易将两个概念混淆。工作流(WorkFlow),大体是指业务过程(整体或者部分)在计算机应用环境下的自动化,是对工作流程及其各操作步骤之间业务规则的描述。在计算机系统中,工…

Qml 实现瀑布流布局

最近在刷掘金的时候看到一篇关于瀑布流布局的文章,然鹅他们的实现都是前端的那套,就想着 Qml 有没有类似实现。 结果百度了一圈也没有( T_T Qml 凉了凉了 ),于是,我按照自己理解,简单实现了一个 Qml 版的瀑布流布局。【写在前面】 最近在刷掘金的时候看到一篇关于瀑布流布…

Rocky9

Rocky Linux 9.4 部署Zabbix 7.0 1-1.检测源 wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm #下载epel的源 rpm -ivh epel-release-latest-8.noarch.rpm #epel安装 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-releas…

洛谷题单指南-常见优化技巧-P1714 切蛋糕

原题链接:https://www.luogu.com.cn/problem/P1714 题意解读:求长度不超过m的最大子段和 解题思路: 1、暴力法 设a[N]表示原数组,s[N]是a[N]的前缀和,对于每一个元素s[i],计算其与前m个元素之差,取差值最大值,用代码表示: for(int i = 1; i <= n; i++) {for(int j …

【专题】2024年中国折叠屏手机市场与消费趋势研究报告合集PDF分享(附原数据表

原文链接:https://tecdat.cn/?p=37645 中国智能手机市场目前仍处于整体增长瓶颈期,增长复苏未达预期,消费者换机预期周期不断延长,使得行业对破局点的探寻更为紧迫。与此同时,中端消费者购机呈现出消费降级与升级的分化态势,不过更多人会选择体验更好、配置更优的产品以…

Goby 漏洞发布|(CVE-2024-45195)Apache OFBiz /viewdatafile 代码执行漏洞【已复现】

漏洞名称:Apache OFBiz /viewdatafile 代码执行漏洞(CVE-2024-45195) English Name:Apache OFBiz /viewdatafile Code Execution Vulnerability(CVE-2024-45195) CVSS core: 8.0 漏洞描述: Apache OFBiz是一个开源企业资源规划(ERP)系统。它提供了一套企业应用程序,…

navicat无法连接远程的mysql--Host ‘xx.xx.xx.xx‘ is not allowed to connect to this MySQL server“

之前在远程虚拟机上面部署了mysql,想在本地客户端使用navicat连接数据库,结果提示:host xxx is not allowed to connect to this mysql server解决 出现这个提示,是由于我们使用root用户登录时,没有给root用户设置能访问的机器,所以我们设置一下,就可以了。1:登录mysql…

jQuery中开发插件

页面代码<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script s…

ubuntu 使用命令行查看硬件信息

ubuntu 使用命令行查看硬件信息 CPU cat /proc/cpuinfo其中,model name就显示了cpu的型号,cpu cores显示cpu的所有物理核心数量。 内存 cat /proc/meminfo其中,MemTotal就显示总内存大小,这里为32GB内存,SwapTotal显示了交换分区的内存大小,这里为 2GB。 硬盘大小 df -h可…

易百纳ss928开发板移植自训练模型跑通yolov5算法

ss928平台移植官方yolov5s算法参考文章:https://www.ebaina.com/articles/140000017418,这位大佬也开源了代码,gitee链接:https://gitee.com/apchy_ll/ss928_yolov5s 本文在参考上述文章的基础上,将官方yolov5s模型跑通,验证推理图片正确,然后移植自训练的推理模型,在移…

hyperworks软件许可优化解决方案

Hyperworks软件介绍 Altair 仿真驱动设计改变了产品开发,使工程师能够减少设计迭代和原型测试。提升科学计算能力扩大了应用分析的机会,使大型设计研究能够在限定的项目时间完成。现在,人工智能在工程领域的应用再次改变了产品开发。基于物理场的仿真驱动设计与机器学习相结…

Xcode 16 RC (16A242) 发布下载,正式版下周公布

Xcode 16 RC (16A242) 发布下载,正式版下周公布Xcode 16 RC (16A242) - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-16/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgXcode 16 的新…