AGC052做题记录

news/2025/11/4 20:40:52/文章来源:https://www.cnblogs.com/storms11/p/19191361

A

其实是简单题,但我是唐诗。

\(2n\) 很简单,前 \(n\) 个和后 \(n\) 个全选 \(0/1\) 即可。可以感觉到正解只需要在这基础上改进,但是胡思乱想了很多没有任何进展。最后意识到最后凑个 \(0\) 即可。

B

做完 T1 ,就一直面对这道题罚坐,没有想到第一步。

边权化为点权, 每个点的点权是到根的路径上的边权异或和。(是否可以理解为树上的领域操作是区间操作,根链类似前缀和,所以变化的点只有 \(O(1)\)),那么操作等价于交换两个点权,所以合法的充要条件是 用\(w1,w2\) 算出的点权集合相等。

唯一的问题是和根交换,如果我们默认根点权是 \(0\) 的话不符合定义,但是我们只要求边两端的点权异或起来是边权即可,所以可以给根随便赋值。两棵树的根都可以随便赋,所以可以固定一个 \(w1\) 的根是 \(0\) ,判是否有合适的值,使第二个满足条件。点权集合相同的必要条件是点权和相同,有因为保证了 \(n\) 是奇数,所以可以直接算出来。因为不是充分的,所以再判一下是否合法即可。

C

困难题目。只会最暴力的 DP。

如果出现次数最多的数是 \(1\)\(n-m\) 个,我们不()难发现答案的充要条件是 \(n-m\le \sum_{i=1}^m(p-b_i)+(p-1)\) 。必要性比较简单,因为总和大于 \((m+1)p\) ,跨过 \(p,2p,..,(m+1)p\) 时都需要一个不是 \(1\) 的数,不满足条件显然无解。

充分性有点困难,构造性证明。设当前的众数是 \(x\) ,和是 \(sum\) 。如果 \(sum+x\)\(p\) 不等于 \(0\),加入 \(x\),否则加入 \(y\) 。然后最后不合法的答案一定形如:

image

不难发现,这种情况不合法。

所以直接一个 dp 求出长度为 \(n\) 的和不为 \(0\) 的方案数,再用一个 dp \(f_{i,j}\) 表示 \(\sum_{k=1}^ip-b_k=j\)\({B_1,...,B_i}\) 的数量,简单背包问题。答案是 \(\sum_{i=0}^N\sum_{j=0}f_{i,j}\binom{n}{i}(p-1)\)。(要满足和模 \(p\) 不等于 \(0\) ,且不满足上面的条件)。乘 \(\binom{n}{i}\) 表示选出不为 \(1\) 的位置,众数有 \(p-1\) 种取值所以还要乘 \(p-1\) (可以直接乘是因为将序列同时乘逆元一定一一对应)。不会算重是因为一定是绝对众数。

D

可以考虑原串的最长上升子序列。

不难发现,如果原串的 \(LIS=2k\) ,我们直接将 \(f_i\le k\) 分一组,剩下的分一组,那么两边的答案都是 \(k\)

否则 \(LIS=2k+1\) ,直接分不能直接相等,两部分的 \(LIS\) 至少是 \(k+1\) ,所以考虑凑限制最松的 \(k+1\) 。有结论是,只要能选出一个 \(x\) 不在这个上升子序列且满足存在一个长度为 \(k+1\) 的最长上升子序列包含 \(x\) ,就可构造出一组合法解。具体地,设这 \(k+1\) 个点下标是 \(i_1,i_2,...,i_{k+1}\) ,如果 \(\exists p,i_p\ne x,f_j=f_{i_p}\) 就放进第一组,否则就放进第二组,特殊地,将 \(x\) 放进第一组。这样分,第一组有 \(k+1\) 的上升子序列,且只有 \(k+1\)\(f\) 值,所以不会有长为 \(k+2\) 的最长上升子序列,第二组有原串 LIS 的 \(k+1\) 点,同上可证答案为 \(k+1\) 。如果不存在,这样的节点,包含原串 LIS 少的一部分长度一定凑不出 \(k+1\) (可以简单反证)。

感觉思路是,\(f\) 值相同尽量放在一起,这样方便判断 \(LIS\) 。偶数直接做完了,奇数则需要将某个 \(f\) 中的一个值移动到另一个集合,使其长度加一,为了保证移动后这边还有 \(k+1\) 的,所以要找一个不在原 LIS 里的点。

E

有点类似的题目:AGC059E

我们可以将字母转化为数值,相邻字母不同,可以理解为数值模 \(3\) 之后的差一定是 \(1/-1\)

我们可以将一个合法字符串对应为一个数组,满足 \(|A_{i+1}-A_i|=1,A_i\equiv S_i\pmod 3\) 。固定 \(S\)\(A_1\) 后,对应是唯一的。

现在思考一个操作,可以操作的位置,左右两边的值一定是相同的且变化的绝对值是 \(2\) 。如果我们已知 \(S,T\) 对应出的数组,如何算操作次数(因为都可以同时加 \(3\),所以固定 \(A\) 的值,但 \(B\) 可以平移 )。首先必要条件是和的奇偶相同,因为每次的变化值是 \(2/-2\) 不影响奇偶。(只用保证 \(A_1\equiv B_1 \pmod 2\) 即可)。答案的下界是 \({1\over 2}\sum_{i=1}^n|A_i-B_i|\) ,考虑证明答案一定可以取到下界,即每次一定可以有一个合法的操作位置。

如果存在 \(A_i>B_i\) 左右一定是 \(A_{i-1}\ge B_{i-1},A_{i+1}\ge B_{i+1}\) ,因为如果是 \(A_{i-1}<B_{i-1}\)\(B\) 相邻的差大于 \(2\) 。所以有 \(A_{i-1}=A_{i+1}=A_i-1\) ,考虑反证如果 \(A_{i-1}=A_i+1\),有 \(B_{i-1}\le B_{i}+1<A_i+1=A_{i-1}\) 所以 \(i-1\) 也符合条件且 \(A_{i-1}>A_i\)\(A_i\) 的最大矛盾,所以不存在。(\(A_i<B_i\) 基本相同,找最小的即可)。

所以问题变为我们可以将 \(B\) 整体加 \(6\) 或减 \(6\) 使 \(\sum|A_i-B_i|\) 最小。设 \(C_i=A_i-B_i\) ,问题则是 \(\min_{y}\sum|C_i-6y|\) , 可以理解为 \(C\) 对应到坐标上与 \(6y\) 的距离之和最小,找中位数即可。

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

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

相关文章

软工团队第一次作业

作业所属课程 软件工程作业要求 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13573作业目标 根据真实的需求调研结果,确定具有创新性与实用价值的软件开发项目选题,确保能将智能体合理地…

Windows11-GPT

Windows11-GPT导航 (返回顶部)1. 基于UEFI/GPT的硬盘分区 2. 分区要求2.1 启动分区(ESP) 2.2 微软保留分区(MSR) 2.3 Windows分区(OS) 2.4 恢复工具分区(WinRE) 2.5 数据分区(Other)3. 默认分区布局表 4. 其他实用分区…

1. markdown转word 第一步: markdown转html

1. 简介 最近因为项目需求需要将AI输出的结果导出到word中, 但AI输出的格式为markdown格式,因为word展示内容的时候需要有相应的格式(标题, 段落, 列表, 表格等), 所以不能直接将markdown输出到word中, 否则word中展示…

P14.Dataloader的使用

P14.Dataloader的使用14.1Pytorch官网打开torch.utils.data.DataLoader14.2在pycharm使用DataLoader它返回img和target代码如下:点击查看代码 import torchvision from torch.utils.data import DataLoader #from tor…

docker换源

创建/编辑 /etc/docker/daemon.json {"registry-mirrors": ["https://docker.1ms.run","https://docker-0.unsee.tech","https://docker.m.daocloud.io"],"live-restore…

pypinyin很好用

pypinyin很好用〔https://gitee.com/mirrors/python-pinyin#id4〕 〔https://github.com/mozillazg/pypinyin-dict〕 pip install就噌噌地装上了。 到灵格斯词典网站下载了成语、文化等词典,过几天出个1~2万词的用户…

小九源码-springboot078-java物业管理架构

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

VS 2017 项目文件不完整,缺少预期导入

VS 2017 项目文件不完整,缺少预期导入输入: dotnet --info缺少 .NET Core 2.0 运行时支持。安装:dotnet-runtime-2.0.0-win-x64.exe本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/v…

人性的弱点

抱怨、吵闹,和歇斯底里,所付出的代价。 那种喋喋不休的吵闹,是否对她有了某种帮助?还是把事情弄得更糟? 当你在深夜面对自己时,如果感受到的是充盈而非荒芜,那么这种生存方式就已通过生命的终极考核。

P13.torchvision中的数据集使用

P13.torchvision中的数据集使用13.1Transforms中的类 1.打开pytorch官网 2.找到CIFAR10,这个数据集比较小3.点击图片上红色的CIFAR104.这里的链接就是Pycharm下载到dataset里面的东西13.2CIFAR10数据集的下载与导入 1…

机器学习基础入门(第四篇):无监督学习与聚类途径

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

图上状压 DP

容易发现每年都在考这玩意。每年都不会。 AT_abc213_g [ABC213G] Connectivity 2 显然删边可以变成保留边。 定义状态函数 \(f_s\) 表示保留边,使得 \(s\) 中的点联通的方案数。那么对于 \(k=k0\) 来说,答案应该就是…

k8s删除Terminating状态的命名空间

k8s删除Terminating状态的命名空间原创于 2021-04-07 16:14:02 发布 CC 4.0 BY-SA版权 K8S/Kubernetes文章已被社区收录加入社区 K8S专栏收录该内容5 篇文章订阅专栏在部署Kubesphere时遇到命名空间kubesphere-system处…

【实用脚本】一键安装Oracle19c数据库

【实用脚本】一键安装Oracle19c数据库完整脚本: #!/bin/bash #Oracle 一键安装工具 log_file="/var/log/oracle_install_$(date +%Y%m%d_%H%M%S).log" # 屏幕输出只显示状态提示,日志文件记录完整详细信息…

程序员必逛的9个开发者社区推荐

程序员必逛的9个开发者社区推荐大家好,我是jobleap.cn的小九。 在技术飞速迭代的今天,开发者想要保持竞争力,离不开优质社区的滋养。无论是解决突发Bug、学习前沿技术,还是交流实战经验、寻找合作机会,合适的社区…

CleanMyMac X 4.14.2 dmg 安装教程|Mac 清理软件详细安装步骤

CleanMyMac X 4.14.2 dmg 安装教程|Mac 清理软件详细安装步骤​ CleanMyMac X​ 是一款专门为 ​Mac 电脑​ 设计的 ​系统清理和优化工具一、下载文件 CleanMyMac X 4.14.2.dmg​ 文件安装包下载: https://pan.quar…

java-迭代器

java-迭代器1.迭代器在遍历集合的时候是不依赖索引的 2.迭代器需掌握三个方法: Iteratorit=list.iterator(); while(it.hasNext()){ String str=it.next(); System.out.println(str); } 3.迭代器的四个细节: *如果当…

go语言访问新浪股票(hq.sinajs.cn)

config.go: package main// 股票代码配置 - 简化版本,只包含主要指数和热门股票 var stockSymbols = []string{// 主要指数"sh000001", // 上证指数"sh000016", // 上证50"sh000300", …

优化算法三剑客:SGD、Adam、AdamW的深度对比

优化算法三剑客:SGD、Adam、AdamW的深度对比 1. 引言:模型训练的"导航系统" 想象一下,你正在一个复杂的地形中寻找最低点(最小损失),四周浓雾弥漫(高维空间不可视)。优化算法就是你的GPS导航系统,它…

某大厂跳动面试:计算机网络相关问题解析与总结 - 教程

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