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

CF2022E 题解 | 数学、并查集

传送门

标签:数学、并查集

题意

给你一个 \(n\)\(m\) 列的矩阵 \(a\),满足限定条件:
对于 \(\forall i_1, i_2, j_1, j_2, a_{i_1, j_1} \oplus a_{i_2, j_1} \oplus a_{i_1, j_2} \oplus a_{i_2, j_2} = 0\)
换句话说,就是所有的子矩阵都满足四个角上的值异或和为 \(0\)

同时,给出 \(k\) 个约束,形如 \(a_{r, c} = v\)
给出 \(q\) 个持久化修改,形如 \(a_{r, c} = v\)

思路

\[\because a_{i_1, j_1} \oplus a_{i_2, j_1} \oplus a_{i_1, j_2} \oplus a_{i_2, j_2} = 0 \]

\[\therefore a_{i_1, j_1} \oplus a_{i_1, j_2} = a_{i_2, j_1} \oplus a_{i_2, j_2} \]

即,给定 \(i_1, i_2\),这两行中同一列的两个数异或和是定值,也就是不受到 \(j\) 的影响。

同时结合异或的性质,我们已经可以猜想:构造一个数列 \(Y_{1,...,m}\)\(a_{i,j}\)\(Y_{j}\) 异或另一些值得到的。
同理,我们将行和列换过来,可以得到类似的直觉,于是大胆猜想:\(a_{i,j}=X_{i} \oplus Y_{j}\)

经过验证,这是满足题目限定的一种构造。

证明:\(a_{i,j}=X_{i} \oplus Y_{j}\)

观察这个式子,肯定要将一个坐标和行、列结合。
又是异或运算,容易想到 \(a'_{i,j} \leftarrow a_{i,j} \oplus a_{i,1} \oplus a_{1,j}\)

然后我们发现,这样之后得到的新的 \(a'\) 依然是满足条件的矩阵。

证明:

每个子矩阵的表达式都异或上了 \(a_{i_1, 1}, a_{i_2, 1}, a_{1, j_1}, a_{1, j_2}\) 且都异或两遍。

那么,考虑一个左上角的矩阵(即 \(i_1 = j_1 = 1\)):

\[\because a'_{1, 1} = a'_{1, j_2} = a'{i_2, 1} = a_{1, 1} \]

\[\therefore a'_{i_2, j_2} = a_{1, 1}, \therefore a_{i_2, j_2} = a_{1, 1} \oplus a_{i_2, 1} \oplus a_{1, j_2} \]

http://www.wxhsa.cn/company.asp?id=300

相关文章:

  • 领悟2025.9.10
  • Codeforces Round 1049 (Div. 2)
  • 告别资料混乱!PJMan 让项目文件管理,简单到不用找
  • 公众号文章如何添加附件?微信公众号支持附件下载Word、Excel、PDF、PPT等
  • 揭秘LedgerCTF的AES白盒挑战:逆向工程与密码学分析
  • Java11-快速启动指南-全-
  • 三万小时PB级院线级电影数据集,包含完整视频、音频和字幕多模态资源,专为视频大模型训练和多模态研究设计,适用于文生视频生成、影视剪辑、语义检索及智能内容管理
  • openssl编程之sm3哈希代码示例
  • CRMEB标准版PHP订单列表功能解析与实战应用
  • timescaledb在ubuntu上的高可用部署步骤记录
  • Mybatis
  • vue3不允许缓存组件keep-alive直接包裹router-view
  • 你的部署流程已然落伍-热重启的失传艺术
  • 安全不是一个功能-而是一个地基
  • Hall 定理相关
  • docker save load 案例
  • Python中的枚举类
  • 数据结构与算法-25.红黑树
  • 第一周个人作业
  • Python 虚拟环境使用和打包成exe程序
  • Docker存储
  • linux调优工具的简单介绍
  • 多线程同步问题-从语法到硬件
  • SAC In JAX【个人记录向】
  • 1.2 亿篇论文数据集,多学科学术语料库,涵盖医学、化学、生物学、人文、物理、工程、数学、生态、经济与计算机科学,用于 NLP、知识图谱与大模型训练
  • Putty 工具集 plink和pscp使用
  • MyEMS:开源驱动下的企业能源管理革新者 —— 从技术架构到 “双碳” 落地的实践之路
  • JWT攻击详解与CTF实战
  • MyEMS:开源能源管理的破局者
  • github拉项目报Failed to connect to github.com port 443失败解决方法