AGC039
A
模拟即可。
B
若图不是二分图则无解,否则令每个点的标号为其到某个点的距离才可保证相邻点的标号差 ,所以答案即 。
C
设 表示把 每一位翻转后得到的字符串。发现题目的操作等价于一个长度为 的滑动窗口在 上不断向右移动。所以移动 次以后回到 等价于 存在长度为 的循环节,所以 。但是 ,因为这样的话这个循环节 就要与 相等了,这是不可能的。
于是我们能发现 又可以被拆为 ,只剩下 这一个限制条件了,而这是易于判断的。再加个容斥即可计算答案。
时间复杂度 。
D
在这里,你甚至可以学习隔壁 MO 平几。
平几的东西忘光了 /ll/ll
可以通过一些转化和欧拉线证明如下结论:
- 对于 ,其内心坐标即三条边对应的劣弧中点坐标之和。
直接做就可以做到 ;使用和差化积可以优化至 。
E
令 ,设 表示仅考虑 内部的点,只有 与 外的点连边的方案数,则 中必有跨过 那条边的边,又因为其不相交,可以设其中左端点最小、右端点最大的一条为 ,那么 中肯定有一个前缀是首先和 连通的、剩下的后缀是首先与 连通的; 类似。我们设这两个分界点为 ,则有转移:
直接枚举 ,时间复杂度 ,因为极小的常数可以轻松通过。
考虑变换枚举顺序,改为首先枚举 再枚举 ,则可以使用另一个 dp 优化计算过程,时间复杂度 。
F
感觉第一步比较难想到,但是好像没有 Au 的难度?
设 ,则 。假设我们已经确定了 ,考虑寻找一种快速计算权值的方式。
把 从小到大排序之后依次考虑每个数。假设在当前的数之前已经有了 个来自 的数和 个来自 的数,则
- 若当前的数 来自 ,则它可以限制 个数,答案乘以 ;
- 若当前的数 来自 ,则它可以限制 个数,答案乘以 。
想到这里就基本上比较简单了。我们考虑容斥,即限制变为「第 行的最小值 」以及「第 列的最小值 」。从小到大添加 ,我们考虑设 表示考虑加入 的 和 ,其中 中有 个且 中有 个的所有方案数乘以系数之和,首先考虑加入 ,根据钦定 或 可以得到两种转移:
加入 的情况类似,注意转移的顺序。
时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?