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

ABC396 VP总结

比赛链接

Result

image

Cloudflare 发力了!!!

D题人机验证一直在卡,然后又就丢掉写 E 去了,于是忘记还有道题没交,然后 \(ans\) 初始值设小了;F 题提交的时候人机验证卡了 10min,不然应该能调出来……

Solution

D - Minimum XOR Path

\(2^{60} > 10^{18}\)

E - Min of Restricted Sum

对于所有 \(X_i,Y_i\) 建图,容易发现每一位、每一个连通块的答案都不相关。那么当连通块和二进制位固定时,确定一个值则确定了所有值。所以可以枚举连通块中一个点的数值,直接算最小值即可

code

F - Rotated Inversions

好题

画个数轴推一下可以发现(令 \(i<j\)):

  • \(a_i<a_j\):在 \(m-a_j\le k<m-a_i\) 时对答案有贡献
  • \(a_i>a_j\):在 \(0\le k<m-a_i\)\(m-a_j\le k < m\) 时对答案有贡献
  • \(a_i=a_j\):对答案一定没有贡献

这是我们就可以结合差分 \(O(n^2)\) 求解了。但这是可以发现在修改差分数组时,两种情况的操作几乎一样,只有 \(a_i>a_j\)\(d_0\)\(+1\)。那么差分数组可以变成:\(d_0\) 为原序列逆序对数,其他位置都在 \(a_i\ne=a_j\) 时可以被修改。这就好写很多了

code

G - Flip Row or Col

好题

因为 \(m\le 18\),我们从这个方向考虑。令 \(a_i\) 为第 \(i\) 行表示的二进制数,对于每一行或列操作一次以上时没有意义的。令对于列的操作次数表示的二进制数为 \(x\)\(a_i\) 最后一定是 \(a_i\oplus x\)\(a_i\oplus x\) 取反。记 \(f_i=\min\{\text{popcount}(i),m-\text{popcount}(i)\}\)

那么 \(ans_x=\sum\limits_{i=1}^{n}f_{a_i\oplus x}=\sum\limits_{i=0}^{2^m-1}cnt_if_{x\oplus i}\)。可以惊奇的发现这是异或卷积的形式!即 \(ans=x\times f\),其中 \(\times\) 为异或卷积。直接上 FWT 板子即可

code

http://www.rkmt.cn/news/61986.html

相关文章:

  • Zelda
  • Day 28 类的定义和手段
  • SetSkeletalMesh优化问题
  • NOIP 模板大赛(没写完)
  • Day25CSS精灵
  • 11/26
  • 关于生育问题的初步看法
  • 游戏立项games-stats,查询游戏tag的销量,以卡牌游戏举例
  • 2025年11月不锈钢砝码,铸铁砝码,定制砝码厂家推荐,实力品牌深度解析采购无忧之选!
  • 五分钟教你学会MarkDown语法 - echo
  • Linux命令行与Shell脚本编程大全笔记
  • Temperature、Top P 的原理以及两者区别
  • 宇树 Qmini 双足机器人训练个人经验总结
  • 实用指南:文档搜索引擎搜索模块:从需求拆解到落地的全流程实现指南
  • 一篇文章详解Kafka Broker - 教程
  • Python store class list data in excel file via pandas
  • 详细介绍:打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第十天)
  • AI写论文不用愁!9个AI工具为你保驾护航!
  • 谁告你只有中元节能见祖宗了?
  • [论文笔记] Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
  • 木棍分割-dp,前缀和优化
  • yolo入门的一些环境配置记录
  • Go语言的应用场景有哪些?
  • 42
  • 在C#中操作Word文档时,如何处理表格中的数据?
  • 如何使用DocX库在C#中创建和格式化Word表格?
  • elasticsearch创建用户、角色
  • P30_利用GUP训练(二)
  • 使用 C# 自动创建和格式化 Word 表格
  • GitHub Actions安全漏洞:GITHUB_TOKEN部分泄露风险分析