XN2025 集训记录 D11

news/2025/4/3 2:37:28/文章来源:https://www.cnblogs.com/youlv/p/18804989

XN2025 集训记录 D11

今天就进入四月份了啊 ... 回顾这一个月 , 应该总还是是有一定的进步的 , 当然这个东西比较不可量化 .

感觉上模拟赛的思路是对的 , 不用担心别的 , 就有规律地打好比赛 , 尽可能拿分 , 回头看看题学一些有趣的思路 , 就很好了 , 其他的还能做什么呢 ? 都到这个程度了 , 除了少数算法和知识还要再熟练 , 其他可以称为 "内容" 的也就是做各种题 , 感受各种思路 , 而模拟赛一方面能看到各种各样的人出的 , 搬的题 , 另一方面也是构造了一个独立生成思路的过程 , 挺不错的 .

就是正反馈和负反馈相对于平淡的做题会放大很多 , 正好也算是锻炼心态了 .


大样例不给出题人 .

( 这里有一段鸟语花香 )


水题场 .

img

因为大样例没有给出题人所以分挂了 T3 .

模拟赛 255/300

呜呜呜我的 AK 场啊.

纯纯是没有大样例导致的 , 写个 T1 签到还得特意写个暴力 , 剩下俩题更是没法调 , 一个 T2 输出一大坨 , 一个 T3 都没啥靠谱暴力好写 , 这能有两道题不挂也真是烧高香了 . 这 T3 平面矩形 , 还得不交 , 这去哪里构造啊 , 这只能丁真调题 , 鉴定为昨天 T1 的奶龙制造机制造出来用于米哈游面试的幽默题 .

题目反正也全水题 , 这个 T1 和 T3 不知道是怎么好意思放到这两个位置上 , 甚至是省选模拟赛 , 感觉不如 NOIP 了都 .

T2 倒是有点意思 .


T1 题意

\(n\times n\) 棋盘格里放 \(k\) 个象 ( 国际象棋 ) , 使象两两无法互相攻击的方案数 .

\(n=1000\) .


T1 题解

考虑 dp , 发现每一个对角线的长度不同 , 方案数也不同 . 先把黑白格分别 dp , 考虑从短往长填 , 这样如果之前填了 \(j\) 个 , 这一对角线就必然有 \(j\) 个不能填 , 所以状态只记录 dp 到第几个对角线 , 填了几个就好了 , \(O(1)\) 转移 . 最后把黑白格卷一下 , 复杂度 \(O(n^2)\) .

这种题为什么会出现在 NOI 的模拟赛上 .


T2 题意

CF1458C .

有一个 \(n\times n\) 的矩阵 \(a_{i,j}\) , 每个行向量和列向量都是一个 \(1\cdots n\) 的排列 , 有以下若干中操作 :

  • R 对每个行向量循环右移一位 .
  • L 对每个行向量循环左移一位 .
  • D 对每个行向量循环下移一位 .
  • U 对每个列向量循环上移一位 .
  • I 对每个行向量视作一个置换 , 把它变为它的逆置换 .
  • C 对每个列向量视作一个置换 , 把它变为它的逆置换 .

其中 , \(p\) 的逆置换即满足 \(p_{p^{-1}_i}=i\) 的置换 \(p^{-1}\) .

给出一个长为 \(T\) 的操作序列 , 求 \(a\) 依次进行所有操作之后的结果矩阵 .

\(T\le 10^5,n\le 800\) .


挺有意思一题 .

首先考虑前四个操作快速做很简单 , 只需要累加 $x $ , \(y\) 方向上的位移 , 最后统一位移依次就好了 .

考虑加入操作 I , 这时发现如果只有 I 的话 , 操作 II 相当于没有操作 , 而 I 与其他操作相结合可以有一些变换 , 也可以理解出找出这些操作之中的某些运算律 . 先给出 I 的意义 , 相当于把第 \(i\) 位变为原排列的 \(pos_i\) .

考虑操作 RI , 相当于每个 \(i\)\(pos\) 都循环 \(+1\) , 那么操作 I 之后相当于对原 \(pos_i\) 进行了一次循环 \(+1\) .

这里引入操作 +- , 分别表示对每一个值循环 \(+1\)\(-1\) , 意义是如果得到的值为 \(n+1\) 就视为 \(1\) , 如果得到的值为 \(0\) 就视为 \(n\) .

引入表示 (xY) 表示把 Y 操作进行 \(x\) 次.

那么就有结论 :

  • RI = I+ .

    同理 , 有 (xR)I = I(x+) 以及 (xL)I = I(x-) .

  • +I = IR , 可以理解为原序列每个位置循环 \(+1\) 的话 , 对应的 \(pos\) 序列就会循环移位 .

    同理 , 有 (x+)I = I(xR) 以及 (x-)I = I(xL) .

  • UI=IU , DI=ID .

    UD 操作与 I 无关 , 它们可以与 I 任意调换 .

这些操作的意义是让这六种操作可以与 I 交换 , 而这六种互相之间又有交换律 , 所以仅考虑它们和 I 的情况下 , 可以对序列进行调整 , 使得所有其他操作全在 I 的前面 , 而 II 可以消去 , 所以总共的 I 操作最多有一次 , 总复杂度 \(O(n^2)\) .

考虑加入 C , 与上面讨论类似地有对 C 的结论 .

  • (xD)C = C(x+) , (xU)C = C(x-) .

  • (x+)C = C(xD) , (x-)C = C(xU) .

  • LC=CL , RC=CR .

因此仍然可以把这六种操作提前处理好 , 相邻的 IICC 消掉 .

现在仅剩的问题是交替的 ICCI 结构的处理 .

发现每次仅从行向量或列向量的角度看 IC 结构 , 几乎是完全打乱的 , 因此很难再从刚才运算律的角度来解决这道题 .

通过观察发现 , 若干次 IC 操作似乎有循环节 , 搜一下发现循环节很小 , 一般是 6 .

考虑证明一下循环的问题 , 考虑把每个位置表示成独立的 \((i,j,a_{i,j})\) , 则 I 操作相当于 \((i,a_{i,j},j)\) , C 操作相当于$ (a_{i,j},j,i)$ , 而每个点最多有 \(6\) 种排列方式 , 之后的置换一定会重复 .

因此搜出循环节 , 直接对不完整循环节的部分暴力做 IC 即可 .

题解给的版本是上矩阵维护 , 感觉不如找循环节适合考场 .

当然看出三维交换这个事情还可以直接维护当前顺序是怎样的 , 以及 \(LRUD\) 操作对每一维的修正 , 最后得到的结构对每个点都适用 , 直接构造 , 写起来更简单了 .


T3 题意

平面给出 \(n\) 个相互没有交点的矩形 ( 可能有包含关系 ) , 有 \(m\) 个询问 , 给出上述矩形当中的两个 \(a\)\(b\) , 已知当前有一个点被 \(a\) 包含 , 且 \(a\) 是包含它的最小矩形 , 想要到达一个被 \(b\) 包含 , 且 \(b\) 是包含它的最小矩形的位置 , 求最少要经过多少条矩形的边 .

\(n,m\le 10^5\) .


这种仅包含的关系可太经典了 , 可以建成一棵树 , 然后发现询问其实就是在询问在树上 \(a\)\(b\) 的距离 .

建树也是经典操作 , 扫描线一维 , 线段树里面套个栈 , 每次取出所有被包含的点 , 这里因为是仅包含关系所以随便找个端点插入线段树 , 就能保证查询时能查询到 .

而且从左到右扫刚好保证了每个点被最小的覆盖它的矩形查询到 , 因为如果 \(x\)\(y\) 都包含 \(z\)\(x\) 包含 \(y\) , 必然满足 \(x\) 的最大横坐标大于 \(y\) 的最大横坐标 , 先扫到的一定是 \(y\) .

然后没了 . 别人放 T1 的题放 T3 , 无敌了也是 .


欸 , 下午又放了一个题单 , 是杂题 .

不过明天不是图论吗 .

刷题单真模拟赛爽吧 . ( 模拟赛特有肾上腺素过山车 ) .

全都不会做啊 .

img

欸我是要去学 fwt 的 , 怎么开始看曹队博客了 ( .


唉 , 又幻想了 . 幻想现在是 2024 年 5 月 , 自己还在高一 , 无忧无虑地追随着 lx 老师作自己的努力 , 曹队 , lpf 老师还在机房 ;幻想自己跟着曹队去打 THUSC 2024 , 虽然分寄了但是也没那么在意 , 开心地逛余姚的街街巷巷 , 顺便为 lx 老师拿下一等衷心高兴 ; 幻想自己跟着 lx 老师去集训 , 天天模拟赛摆烂 , 看其他同学搞抽象 , 给 lx 老师点外卖赤 .

还真是容易沉浸在过去啊 .

一个个使人欢喜使人愁的瞬间 , 不止息地从现实流进记忆 , 总有一天我们会明白那是什么 , 那就是塑造了我们的一切事物 .

那是家 , 是雪花飘飘的黑夜里沉默的足迹 , 是背后路灯的鹅黄色的光 . 只不过这个冬夜虽然温暖 , 前面的路还在等待 .

于是它们终于幻化成晴朗的景象 , 出现在耀眼的梦中 .


我学会 FWT 勒 !

FWT

其实要构造一个贡献函数 \(c(i,j)\) , 根据位运算特性把 \(c(i,j)\) 拆位 , 再根据推式子得到同构形式有 $c(i,j)c(i,k)=c(i,j\oplus k) $ , 根据不同的运算构造出 \(c\) 对应的矩阵并要求可逆 .

构造后发现对于每个运算 , FWT 的贡献系数其实各有两套 , 只不过选取了有位运算意义的一组 :

  • \(or\) : $c(i,j)=[i \ \mathrm{and}\ j=j] $ , 相当于子集枚举 .
  • \(and\) : $c(i,j)=[i \ \mathrm{or}\ j=j] $ , 相当于覆盖集枚举 .
  • \(xor\) : $c(i,j)=(-1)^{i\ \mathrm{and}\ j} $ , 相当于讨论 \(|i\ \mathrm{and}\ j|\) 的奇偶性 .

这些特殊意义一方面可以帮助理解和记忆 , 另一方面 , 有些题目可能会构造相关的形式 , 反过来引出 FWT .

另外 FWT 是线性的 , 有 \(FWT[A]+FWT[B]=FWT[A+B]\) 以及 \(FWT[cA]=cFWT[A]\) .

另外 FWT 还有一个向值域 \(k\)拓展版本 .

\(or,and,xor\) 可以分别扩展值域到 \(k\) 时的 "每一维取 \(\max\)" , "每一维取 \(\min\)" , "每一维上的值相加并 \(\bmod k\) " 三种操作 . 贡献矩阵分别是高维前缀和 , 高维后缀和 . 最后那个需要单位根状物 , 比较复杂 , 感觉也不是很实用 .

最后 , 使用 FWT 有更快的子集卷积 . 用 FWT 保证 \(i=j\ \mathrm{and}\ k\) , 另一个条件转化成 \(|i|=|j|+|k|\) . 因此把序列 \(a\) 按照 \(|i|\) 分层 , 有 \(a'_{i,j}=[|j|=i]a_j\) . 则 \(a_i=\sum b_j*c_{i-j}\) , 复杂度 \(O(n^2 2^n)\) , 比直接子集枚举的 \(O(3^n)\) .

这东西真有什么用吗.jpg

来都来了又不难就学一下.jpg


结果一晚上还是被神秘 FWT 推式子题上市了 .

哎我推式子题怎么这么坏 .

这些东西都是怎么构造出来的啊.jpg

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

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

相关文章

20244208 2024-2025-2 《Python程序设计》实验二报告

20244208 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2442 姓名: 王子骞 学号:20244208 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 专选课 1.实验内容 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。 考核…

a16z合伙人:语音交互将成为AI应用公司最强大的突破口之一,巨头们在B2C市场已落后太多丨Voice Agent 学习笔记

如果你愿意花些时间调研语音 AI 行业,大概率会碰到 Olivia Moore。她主笔了两次 a16z 关于语音 AI 行业的 分析报告 ,投资的语音项目如 ElevenLabs、Sesame 等都是行业明星。这次播客访谈中,她和 a16z 另外一位合伙人 Anish Acharya 分享了他们对语音 AI 市场的最新观察和分…

20244226 实验二《Python程序设计》实验报告

20244226 2024-2025-2 《Python程序设计》实验2报告 课程:《Python程序设计》 班级: 2442 姓名: 张毓格 学号:20244226 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 公选课 1.实验内容 (1)设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善;…

20244111 实验二《Python程序设计》实验报告

学号 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2441 姓名: 韩金婕 学号:20244111 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 公选课 1.实验内容 设计并完成一个完整的应用程序,完成加减乘除模阶乘等运算,功能多多益善。通过…

20244112 实验二《Python程序设计》实验报告

20244112 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2441 姓名: 李其鲔 学号:20244112 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 公选课 1.实验内容 (1)设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善;…

20244102 2024-2025-2 《Python程序设计》实验二报告

20244102 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2441 姓名: 丁可 学号:20244102 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 公选课 一、实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。二…

20242207 实验二 《Python程序设计》实验报告

20242207 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2422 姓名: 赵泓睿 学号: 20242207 实验教师:王志强 实验日期:2025年3月26日 必修/选修: 公选课 1.实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。…

高一下四月日记

云海翻涌,尘世如歌;人间烟火常驻,心中超然长留。低眉俯瞰凡世间,存梦幻歌凭云处。4.1 闲话 做题纪要 luogu P1175 表达式的转换开两个栈辅助建后缀表达式。点击查看代码 char s[110]; deque<char>s1,s2; deque<int>s3; int val(char x) {if(x==() return 0;if(…

进阶图论

进阶图论 I. 割点与桥 首先,我们得了解割点的含义 割点对于一个无向图,如果把一个点删除后这个图的极大连通分量数增加了,那么这个点就是这个图的割点(又称割顶)。通俗点说,就是连接两个或多个连通分量的公共点。 如何求割点呢,这里引用一个算法:Ttarjan 定义 dfn[i] 为…

URAT协议自学笔记

定义 URAT(Universal Asynchronous Receiver/Transmitter)协议是一种通用异步收发传输协议,用于在两个设备之间进行串行数据通信。它将并行数据转换为串行数据进行传输,接收时再将串行数据转换为并行数据。 特点 异步通信:不需要共享时钟信号,通过波特率同步数据传输。 全…

解决手机每次复制都弹出google的nearby服务-分享到附近的设备

起因: 我的手机刷了国际版的系统,有google套件,每次复制都会唤起nearby附近分享这个组件,感觉很烦。 解决方法: 下载AppOps,这个软件能方便我们管理和监视应用权限。 使用Shizuku授权点击左上角,选择使用情况历史点击剪切板我们切出去, 在别的应用中进行一次复制,就可…

neo4j community教程

neo4j community最新版本安装教程(2025.1) 前言 ​ neo4j desktop以交互性好,体验好为优点。但是自24年中旬neo4j官网先后被墙和neo4j desktop联网打不开等诸多问题,本文作者建议使用community版本。 正文下载安装包neo4j官网,下载community最新版本(5.26.1)jdk-23下载(这…