20251028
早上
早上的四道题是 P4587、P10144/P10210、P11536、P3527/SP10264。
T4 满脑子是前不久刚听说的二进制警报器。别想歪了,这个 \(k\) 复杂度也不是很对。
对每个国家,二分 \(k\) 然后区间加是好想的。
现在是问每一个国家,所以……可以……整体二分!哈哈哈哈。
【可持久化线段树也是可以的,但是本题特地卡空间。】
在这里拜谢 Sam_Yang 大巨佬让我避开了一点点整体二分的坑点,比如不要暴力清空任何东西,换句话说,一定要保证所有 \(O(n)\) 的操作只进行 \(\log(n)\) 次。
这辈子第一次写整体二分_哈哈哈。
T1 注意到如果大小在 \([0,k]\) 的数字的总和为 \(x\),那么我们可以把值域拓展到 \([0,k+x]\)。
然后可以暴力加。因为经过证明,次数是 \(\log\) 级别的。
真有意思。
T2 是恶心大分讨。我直接往平均数的方向想了 qwq。
T3 很神奇,是线段树的合并标记。【下文中会提到另一个合并标记。】这个故事告诉我们线段树是真香啊。
以及不要看到什么都想莫队等暴力算法【@Sexy_Foxy】。
下午
T1 之前做过但又想歪了。可以转化成先对 \(1\sim x\) 的链 \(+1\),然后求 \(1\sim y\) 的链上的数总和。
T2 似乎好像没……完全搞懂。
T3 就是一坨【不是说题不好,但是你就说那么多“串串”是不是一坨】。首先由于是“分割”式的匹配,因此可以贪心地分割(能匹配到就分割)。然后用哈希来匹配,一直蜿蜒到子树就好了。最后由于 \(\sum m_i \le 10^5\),因此 \(m_i\) 种类为 \(\sqrt n\) 级别(AMAZING!),可以对每种长度都来一遍。
晚上
晚上讲了三道树的直径。
三道题分别是 P8934、CF1192B、P11956。
你以为真的只是树的直径吗?非也。
有一个东西叫做什么“生成图的最大生成树”。对于每个点 \((i,j)\),它们俩在生成图上有一条长为 \(dis(i,j)\) 的边,其中这个 \(dis(i,j)\) 指的是它俩在树上的距离。
根据性质“一点到其它点的最远距离一定是它到直径两端点的距离的 \(\max\)”,我们知道一定会选一条直径,然后其它点和直径的两个点中的一个连接。
于是就变成了下面的样子:

于是这玩意就和树的直径扯上关系了。
关于树的直径不止有扫两遍和树型 DP 两种求法。
第一它可以作为一种可合并信息放到线段树上。
这很神奇。
此时 TA 的定义已经变为 \(\max_{i,j} dis(i,j)\),就是说,线段树上,一个区间,取区间内两个点使得它们 \(dis\) 最大。
这是可以合并的,取两个点集的直径的两个端点,\(C_4^2\) 看哪两个点距离最远就好了。
(这是说的 T2。)
第二可以维护直径的中点。
这更神奇。根据性质“若一棵树有多条直径,那么它们的中点都相同”,我们知道一棵树的直径们的中点是唯一的。
于是当直径可能被神秘地拓展也好,移动端点也好的时候,可以维护中点的移动。
那这就好办了,沿着移动的边切成“子树内”和“子树外”,区间加减就好了。
(这是说的 T3。)
20251029
早上
P8906,P13766,P8969。
T1 好恶心。这个 \(k=8\) 就很有意思。一般来说它设置为那么小一定有它的小巧思,要不然一定会设大一点。
有的时候,比如这道题,当 \(k\) 变大的时候解决问题的复杂度会陡增。因此我们可以由 \(k\) 较小的情况入手,然后推广至 \(k\) 稍微大那么一点点的情况。
稍·微·大·那·么·一·点·点。
比如此题,\(1\) 到 \(i\) 的路径可以转化为 \(1\) 到 \(j\) 再到 \(i\) 的路径。
把 \(k=8\) 拆成 \(k=4\) 和 \(k=4\)。
\(k=4\) 又可以拆成 \(k=2\) 和 \(k=2\)。
折·半·又·折·半。
T2 是颜色段均摊。题意不清晰差评。
可以用 ODT 也可以拍到线段树上。
带权中位数好评。\(\sum b_i \ge \frac{1}{2} \sum b\)(前提是按照 \(a_i\) 排序)。
关于颜色段的学习需要找 ODT 的相关博客。一次修改最多加 \(2\) 个区间,然后一次推平就什么也没有了。
T3 的 popcount 有神秘性质。
因为 popcount 的值域是 \(O(\log V)=30\) 的,因此可以定义 \(f(x)=\text{popcount}(x+a)+b\)。
然后线段树懒标记下传,就变成了喜闻乐见的“复合函数嵌套问题”。
我 cnm。
对于这种可合并的懒标记,一般都尝试把它转化成一个短短的操作序列。(比如区间加,区间乘,会转化成 \(x \leftarrow x \times a+b\)。)
下午
P9150,P10162。
T1 好恶心。
由于钥匙图是排列,因此是一坨置换环。破环为链,尝试扩展我们能到达的点的区间。这个细节还是太多了。
关于强连通分量、可合并“链”,区间使用并查集维护是否可达(且父节点放在最右边表示能到达的最右边的点),以及为什么要建反向边以快速找到“返祖边”的东西,我自己都有点迷迷糊糊。
T2 居然是分治。看来对分治的理解还是不够。
以及特殊的 \(a_i+a_{i+1},a_i-a_{i-1}\) 一定要拎出来特殊判断,只有好处没有坏处。
分治维护排序的数组。归并排序的好处在此体现地淋漓尽致。
晚上
没有新题,自己补题。
20251030
早上和晚上分别打了两场模拟赛,挂大分。
具体地,签到题都没 A 掉。
但愿后天 CSP-S 能够反向挂分挂回来。
20251031
复习模板。
20251101
早上继续复习模板。
下午CSP-S。RP++。
20251102
晚上回到机房写游记。尝试补题但失败了。
20251103
早上
TEST_68,字符串重排,Elaxia 的路线,墨墨的等式。
TEST_68 需要我们观察到异或,或者说位运算在 trie 上的相关性质。
还记得之前做过一道处理任意两个数相与的最大值,当时我们记得一个结论,有用的数字不超过 \(\log w\) 个,但不是很懂为什么。今天我们在 trie 上演示了一遍。就是说,如果当前位有超过两个数 \(=1\),那么往右走;否则往左走,且此时右边最多只有一个数字。
但是异或不一样,如果说对于“相与”和“相或”来说,求“\(S\) 内两两配对的最大值”更简单,那么对于“异或”来说,求“\(S\) 内选一个数与 \(x\) 配对最大值”更简单。也就是说,我们如果要求“\(S\) 内两两配对”最大值,那么肯定是一个个插入进去。
所以对于此题来说,把子树拍成区间是不大合适的。
(老师有言:子树的限制是强于区间的限制的。)
此时我们“观察样例”,得到有很多数字都是全局最大值。我们提出一对最大值 \((x,y)\),则除非取不到 \(x\) 或者 \(y\),否则一定可以渠取到最大值。
我们画个图,发现只有 \(x\) 的祖先或者 \(y\) 的祖先才取不到 \(x\) 或者 \(y\)。于是打一个标记,然后把两条链扫一遍就好了。
字符串重排的这个“lcp”不好处理。我们需要知道,什么样的东西能满足相邻 lcp 最大。一种方式是字典序,但这种方法不好推广到下一问。
我们把它拍到 trie 树上。观察到公共前缀比较长的会尽量在同一子树内(应该知道我在说什么。换句话说,lca 的 dep 尽量深,但是这么说不够形象)。
因此可以用 dfs 序来排序。(这也从另一方面解释了字典序为什么可以。)
而且由于 dfs 的时候,顺序是可以自己乱换的,所以我们可以自己定义一些约束条件。
我们看到第二问。编号越大的贡献越大且为 \(2^i\),因此肯定先满足后面的,能满足后面的情况下再去满足前面的。这就是一个贪心了。
对于 \(x,y\),如何才能让 dfs 序上,\(x\) 刚好 在 \(y\) 的前面?
- 对于 lca,\(x\) 所在的子树要在 \(y\) 所在的子树的前面一个被遍历。
- \(x\) 要是那个子树中的最后一个,\(y\) 要是那个子树中的第一个。
可以拉一条链表,并暴力记录最左边和最右边是什么。如果冲突了就没事了,没有冲突就记录一下。
Elaxia 的路线是我一眼出思路的。
由于 \(n\) 过于小,可以预处理最短路,然后(思考时并没有详细想,但是可以证明如此)重叠的一定是一条链。
本来想的是 \(n\) 遍最短路后再枚举链的两端 \(i,j\),但 \(m \le 5 \times 10^5\),所以寄寄了。
事实上只需要处理 \(4\) 个或者两个最短路。
注意并行或者相遇都算是在一起,所以需要考虑两个方向。
一个性质:最短路所在的边组成的图是 DAG。
把这些图拎出来再拓扑就好了。
墨墨的等式是很典的“同余最短路”,但是之前从没见过。
我们有形如 \(f_j=f_{j-a_i}+a_i\) 的式子,但是 \(j\) 值域太大,我存不下。
因此可以把下标取模!!!
但这样就有后效性了,又注意到比较像最短路转移的形式,因此可以套最短路解决。
差分约束以外的另一种最短路神秘运用。
可以处理这种类似完全背包的问题。
下午
自己做题。多放了一道跳楼机 Oh baby 我们俩的感情好像跳楼机,早上居然随手做了。
晚上
HAOI2012 道路,ZJOI2016 旅行者。
道路这道题还是我能想出来的。由于数据范围较小,每次暴力枚举起点,跑一遍最短路,然后把最短路树拎出来,一个简单的拓扑 DP。
【想到这一步后就睡着了。】
旅行者这题居然是分治。矩形,切成两半,一条竖线进行最短路转移。时间复杂度证明极其复杂。
以及终于把 TEST_68 调出来了,可花了我好久。
20251104
早上
P3275 糖果,路径规划,P2056 捉迷藏,P4219 大融合。
T1 就很 simple 的差分约束板题。
突然意识到自己对差分约束的理解还不够深刻【汗颜】。如果我们转化成 \(b \ge a+x\),那么从 \(a\) 往 \(b\) 连一条长为 \(x\) 的边,那 TM 是最长路不是最短路。
因为走过的都是满足条件的东西。
如果是 \(b \le a+x\) 那才是最短路。
然后由于一个不小心啊,我们发现变成了正边权最长路(负边权最短路),这玩意 Dij 没法做,SPFA 又死了。
但是!我们关注到 \(x\) 只可能为 \(0\) 或 \(1\)。所以我们可以先 tarjan 缩点再拓扑套 DP。(注意缩点后的环不能有 \(1\) 边。)
T2 好恶心。它等红绿灯没等清楚,因为是个概率,所以需要算一个数字。然后需要跑分层最短路,具体我没懂。
T3 是第一天的“线段树维护树的直径”,一眼秒。
T4 需要随时维护当前连通块大小和子树大小。可以先离线然后建树,树上差分维护当前子树大小。
本题卡倍增 LCA,于是学了某科技:DFS 序求 LCA。这玩意好东西啊。
下午
啥也没干。
教练硬要让我们学会 LCT(因为前面 T3 和 T4 都可以用 LCT)。于是开始补习 Splay 和 LCT。
想当年学 LCT 的时候我连线段树都不熟。
话说回来现在回过头来看 AVL 和 Splay 感觉豁然开朗。哈哈哈 Maly 也是长大了。
晚上
打学弟们组的一套生日赛题。
T1 是凯撒密码 \(+\) 字母 e。T2 是 kruskal 重构树套数据结构,我选择了树上启发式合并,在最后 \(5\) 分钟调过了。T3 大概也许和折半搜索有关???我不怎么会,但是通过一些奇淫技巧卡到了 \(60\) 分,很满足了。T6 是很好的彩蛋题。
我们机房 T2 \(6\) 个人有 \(5\) 个做了出来,其中有 \(5\) 种做法。以及包揽了所有奖励哈哈哈哈。
20251105
早上
树论相关。
首先学习了 prufer 序列。
对于一棵有 \(n\) 个点的有标号无根树,它的 prufer 序列是一个长为 \(n-2\) 的序列。每次选择一个标号最小的叶子结点(度为 \(1\) 的点都叫叶子结点),把它删除并将那个连接它的节点加入序列。最后会剩下两个相连的节点。
然后有三个结论。
首先有一个数 \(n^{n-2}\),是有 \(n\) 个点的有标号不同构无根树的数量。
其次有 P2290。
在一个 prufer 序列中,度数为 \(d\) 的点会出现 \(d-1\) 次。
因此给定每个点的 \(d_i\),那么不同形态的树的方案数为 \(\dfrac{(n-2)!}{\prod _{i=1}^n (d_i-1)!}\)。
最后,有 \(k\) 个连通块,第 \(i\) 个连通块有 \(s_i\) 个点(共 \(n\) 个),用 \(k-1\) 条边使它们连通,则 \(ans=n^{k-2} \times \prod s_i\)。
接着是四道题:「RiOI-4」TECHNOPOLIS 2085,巡回演出,小清新计数题,古朴而优雅。
T4 倒是不用 prufer 序列。但是有另一个结论:一棵树,设一个点儿子个数为 \(son_i\),那么它的 dfs 序数量为 \(\prod son_i!\)。
然后树加一条边就是基环树,进入一个环后只会顺时针转或逆时针转。两种情况和把环两边的一条边断掉后形成的树是等价的,因此只要分别断掉两条边,改变度数再计算就好了。
T1 先要把关键点组成的虚树建出来(别说我都差点忘了我学过虚树这玩意)。然后剩下的点可以在虚树上乱插。有两种方式:一种是插在边上,一种是插在节点后面形成叶子。我们选 \(i\) 个点插在边上,这样问题就变为“有 \(n-(m+i)+1\) 个连通块,其中有一个连通块大小为 \(m+i\),剩下每个连通块大小为 \(1\),求用一些边使它们连通的方案数”。套用结论 \(3\) 就好了。同时可能出现根变化的情况,需要从另外 \(n-(m+i)\) 个点中钦定一个根再算一次。
T3 这玩意有意思啊。\(n\) 个点 \(n\) 条边,基环树。方向倒不是很重要——一条“真”边意味着两句话要么都是真要么都是假,“假”边则相反。也就是说,“真”边两个点同色,“假”边是异色。那么在基环树上,异色边数量要是偶数。
数据范围如此之小,可以枚举 \(i\) 条同色 \(j\) 条异色的基环树方案数,再在其中枚举 \(a\) 条同色 \(b\) 条异色的环的方案数。最后类似一个背包(因为不一定连通)。
注意有 \(n\) 个有标号点组成不同环的方案是 \(\dfrac{n!}{n}=(n-1)!\),因为循环移位有 \(n\) 种。
T2?不会。老师说疑似要多项式,可惜我不会多项式。
第二天才补的笔记,可能有点仓促。
下午
无。
晚上
突然听说 CSP-S 出分了。
补写游记并写了 LCT。
20251106
又是第二天补总结,服了。
早上
展翅翱翔之时 (はばたきのとき)(其实是 P14401/AT_joisc2016_i),Bushiroad的偶像派对,Hungry Rabbit,宅男计划。
贪心专场。
T1 转化题意后是需要把一棵基环树改成一个环。
首先如果你已经把这棵基环树拆成了几条链,那么这几条链一定能首尾相连变成一个环。所以只需要把这棵基环树拆成几条链就好了。
对于单棵子树,保留从它到儿子的所有边中边权最大的边,然后把其它的边都断开就好了。
然后基环树上的每个环都挂上了一条链。
如何把这个环断成好几个链?可以把环上的一条边断开,也可以把一个点到它的出链断开。
记录两个变量 \(cut_0,cut_1\),表示是否把这个环上的边断开的最小代价。
然后分类讨论一下。
T2 写了篇题解。
T3 很神秘。我们找出一只兔子下一次被捕食的时间,那么每次如果可以换兔子,一定把兔子换成下一次被捕食时间更晚的更优。
于是每次都尽量把 \(l\) 次机会用完就好了。
T4……嘛。先刻画 \(f_1(x)\) 表示只点一次外卖,能活 \(x\) 天的最少代价。可以发现我们只会选要么保质期短但便宜,要么贵但保质期长的外卖,且一种外卖会管一个区间的日子。于是它就变成了一个分段函数(且斜率单调递增,是个下凸壳)。由于闵可夫斯基相关可以得出 \(f_k(x)\)(点 \(k\) 次外卖的最小代价)也是下凸壳——然后就不会了。
下午
补题。
晚上
听 20251104 的比赛的讲题。
T3 原来是诈骗题。我前年暑假还做过???
T5 果不其然是 LCT,但是还是线段树份治套 LCT。
T4 忘了。
然后又有三道题:组装、通往城堡之路、美味。
T1 首先要转换题意,拆式子得到一个二次函数,取极值为 \((\dfrac{-b}{2a},\dfrac{4ac-b^2}{4a})\)。然后对于每一个 \(x_i\),会存在一个 \(y\) 代替一个 \(x\) 的情况。有一个贪心性质,记一个交换为 \((x,y)\),那么 \((x_1,y_1)\) 在 \((x_2,y_2)\) 之前进行当且仅当 \(x_1+y_1<x_2+y_2\)。需要证,但可以证。然后扫过去就好了。
T2 是调整法。先构造出一个解 \(a,a-d,a-2d \dots\),然后再向上调整。每次调整都是对于一个后缀进行调整——然后不会了。
T3 之前 Sexy_Foxy 在他的杂题选讲中搬过,很不幸我当时没做。
结果现在一讲居然听懂了???我们按位贪心,则 \(a_j+x_i\) 会属于一个区间 \([\dots \, 1/0 \,000\dots0,\dots \, 1/0 \,111\dots1]\)。然后在 \([l,r]\) 中查找是否存在 \([L-x_i,R-x_i]\),这就是主席树该干的事了。
20251107
早上
只做了一道题我太菜了。
WYR-Leveling Ground,INS-Inspector,POL-Polarization,KLO-Bricks。
T1 显然可以先把区间修改改为单点加减。
然后由于只有 \(A,B\) 两个数,容易联想到 exgcd。
然后又是调整法。
设 \(ax+by=d\),则贡献为 \(|x|+|y|\)。因此得先让 \(|x|+|y|\) 最小。只需要考虑 \(x\) 最小正整数或最大非正整数。
但是我们的操作是需要一一匹配的,也就是 \(\sum x=0\)。为了做到这个限制,我们需要调整法。
每次我们会把 \(x+b\),\(y-a\)。
——然后就不会了。为什么要用堆来取出最小的数字啊。
T2 比较正常。
首先肯定考虑二分。然后每个人都会有一段时间必须上班。接着我们把所有人(当前的状态)分为几类:在“必须上班”,在此之前但是还在上班(提前上班),在此之后但还在上班(延后下班),彻底下班了(以后有事也不来找你了)。
然后 \(O(m)\) 扫一遍就好了。有一些小细节。
T3 居然被 Sam_Yang 想要搬进模拟赛过,但是被老师说“太简单了”。简单个毛线啊。
首先最小的答案显然是 \(n-1\)。把树看成二分图,只从 \(X\) 部往 \(Y\) 部连接就好了。(我 tm 还没想到这一点。)
最大的答案呢???
首先通过手玩并反证法可知构造的树一定是一个根,一些子树树的边指向根,一些子树的边从根指出来的形式。
然后我们想要平均分。
然后……有结论取重心是最好的。我不会证明了(本来就没有题解有证明)。
T4 让我想到了食事计划。不同的是本题没有要求字典序最小,且要求第一个和最后一个是给定的东西。
每次选次数最多的两个。但是要加一大坨大分讨。
下午
打 *** 的比赛。为了保密细节不透露了。
晚上
被老师要求出题。
拿出了自己之前的一道题。
但是为了方便,老师给每个人安排了任务,我要出一道 *** 题。
于是我先学习了 ***,然后一边学一边自主推导了 ***,接着想到了 ***,最后 *****。
20251108
早上
新来了几位小学弟。
打比赛。shit 比赛来的。
T1 模数 \(10^8+7\),输出“Impossib1e.”就算了,题目名还拼错,还卡空间,做法还很屎……
最后由于 tarjan 的 f 数组没清空导致虚空调了一会儿。也是在还有两个小时的时候过了。
T2 输出“YE5”和“N0”也是太恶心了。
然后……不会。
T3 一大坨原神背景是什么鬼!!!
然后不仅看错数据范围,还忘记了注意题面上某特殊性质也是唐完了。连暴力都没过样例(大样例)。
T4 已经没时间打了,但其实有 \(36\) 分左右的暴力 DP。应该先打这个的。
最后拼尽全力想打 T2 的 \(4\) 分暴力但无法战胜。
下午
先被作了一番思想教育,然后听评讲。
啊原来 T2 又是“调整法”。去你 m 的调整法。
(原题是 AGC055B。)
老师提到了另一道题,大意是“一个 \(n \times m\) 的 \(01\) 矩阵,第一个操作是选择一个任意大小的矩阵,把左上角、右下角、左下角、右下角的数字取反,第二个操作是选择一个位置把数字取反,求最少用几次二操作能使数组全为 \(1\)”。
这道题当时我是先转化为 \(2 \times 2\) 的矩阵取反,然后就……根据大样例(特殊性质版)找到了规律然后 A 了。
于是老师介绍了两种解决这种“鬼畜性质题”的方法:
- “调整法”。比如这场 T2,可以先固定前 \(i\) 位,这样就只需要把后 \(n-i\) 位弄好就好了。我们需要一个字符的时候就从后面调过来。
- “同构法”。这种方法适用于一种循环的操作,即一个操作做多几次后总可以回到最初的情况。这样这种操作会使得你要操作的东西的一些性质可以被抽象出来(独立集),这样具有相同性质的便可以被相互变换得到。
比如这场 T2,由于三个字母可以随时乱换,且“?KXP”可以得到“KXP?”,因此任意一个不在某一“KXP”中的字符都可以被移到最前面。这样就可以判断了。
又比如那道矩阵变换题,我们可以通过一些移动使得所有的 \(0\) 都在最边上(这就是特殊性质),然后再把那些落单的全部点掉就好了。
T3 的 \(n \times m\le 5\times 10^4\)???是我不仔细读题导致的。
由于询问过于多,因此先预处理。
但怎么预处理呢?我们要预处理的是一个 \(\lfloor (\sqrt a+\sqrt b)^{2k}\rfloor \bmod Q\),其中 \(a,b,k \le 10^8\)。有一个性质: \(|\sqrt a-\sqrt b|\le 1\) 且 \(a \ne b\)。
由于要取模,因此不能一边算一边取模,否则没过多久就炸了。而且由于是取模后的最大值,我们不能将变量分离什么的。
首先先把 \(2\) 平方进去得到 \(\lfloor (a+b+2\sqrt {ab})^k\rfloor \bmod Q\)。
看似没有任何思路?
我们先看看 \(k=2\) 什么情况。发现 \((a+b+2\sqrt{a\times b})^2=((a+b)^2+4ab+4(a+b)\sqrt{ab})\)。
发现了什么?这是一个 \(P+Q\sqrt{ab}\)(记为 \(X\))的形式。
额!我们试试递推一下!
设 \(P_i,Q_i\) 分别为 \(i\) 次方时的 \(P,Q\)。有:
推一下式子的事。
但是我们发现,我们还是无法对它们取模(要不然到时候得到的系数“不真实”),也就是说我们做了一大坨无用功……吗?
你发现没有,这好像那个复数相乘的形式!在那里我们有 \(i^2=1\),在这里我们有 \((\sqrt{ab})^2=ab\)!
复数是实部与虚部在坐标系上的两个维度,当两个复数相乘的时候,相当于在坐标系上进行了拉伸旋转。
这里,我们引用了这个思想,把有理数部和无理数部作为下标的两维。
我们好想把无理数部消掉啊!因为如果只有有理数——由于这里没有分数,因此就是整数——的话,那么我们就可以快乐取模了!!!
那么怎么消掉呢?
我们还记得高中数学课的时候老师无意间提到的“共轭”,这玩意也在 FFT/NTT 中出现。
简单的,\(a+bi\) 和 \(a-bi\) 为共轭复数。
有定理:两个共轭复数相乘会得到一个实数,反之亦然。 这个证明不难,通过复数的三角函数定义可以写出来。
我们不禁想,要是把这种共轭方式扩展到这里……
我们构造 \((\sqrt a-\sqrt b)^{2k}=(a+b-2\sqrt {ab})^k=P_i-Q\sqrt{ab}=Y\),则 \(X=2\times P_i-Y\)。
虽然 \(Q\) 没有了,但是多了个 \(Y\)……
等一下!!!我们注意到那个神秘的性质:\(|\sqrt a-\sqrt b|\le 1\) 且 \(a \ne b\)!!!
也就是说,\((\sqrt a-\sqrt b)^{2k} \in(0,1)\)!!!
即 \(Y \in(0,1)\)!!!
那么 \(X\) 的下取整就是 \(2\times P_i-1\)!!!
然后我们就可以愉快地对 \(P,Q\) 取模了!!!
但是我们发现 \(k \le 5\times 10^8\),对于 \(5\times 10^4\) 次运算还是太多了!!!
很简单,这种形式简单的递推式只需要请出我们的矩阵快速幂就好啦!!!
预处理之后就稍微好办一些了,不带修改,可以对每一个点的 \([l,r]\) 区间套 ST 表,再树上倍增(和 ST 表思想类似,所以也算是两只 ST 表)。
不是它不配,是第一部分真的好考数学功底啊……
T4?先等我打完 T3 再说吧。
upd:最终没有改出来,算了。
T4 是 DP 的优化。标答是利用了状态的优化,因为有大量无用的状态。我们的 high_sky 大佬则想出了另一种 DP 方式,并用另一种优化方法(在赛后)过掉了这道题。congratulations。
晚上
回家。
20251109
早上和下午在家。晚上补 T3 没补出来。
其他同学在出题。
20251110
第二天其他同学们要期中考,win。
但是考完期中考后要研学,不 win。
研学回来要运动会,我的体能已经退化如此了,如何运动会.jpg。
早上
P3523 [POI 2011] DYN-Dynamite,P3539 [POI 2012] ROZ-Fibonacci Representation,
P3542 [POI 2012] PEN-Salaries,P3615 [JOISC 2016] 如厕计划 / Toilets。
T2 之前在哪一道题见过用斐波那契数列拼凑数字的题目,所以不难想到直接暴力凑。
简单来说就是每次都选与它的差绝对值最小的数字。
但是证明嘛……那就是另一回事了。
T4 前不久才看 cz 发过一篇帖子暂存了更加鬼畜的原题面。不是我说为什么 IOI 赛场明知男多女少还要专门开一个女生专用厕所啊!!!很诡异你知道吗!
先判掉无解。
首先由于 F 可以“插队”(往前排),因此如果一个 F 在 M 前面(且不是相邻),那么它们无论如何都不能在同一轮上厕所。
所以一个 M 一定和它后面,或者紧挨着它的前面,的 F 匹配(一起上厕)。
把 F 看成 \(+1\),M 看成 \(-1\),那么当后缀和 \(\le -2\) 时就需要把一个 F 往后调。这样的后果就是后缀和 \(+1\)。
事实上把最前面的 F 往后调,后缀和整体 \(+1\),本质是一致的,因此只需要求每一小段的后缀和(及其最小值)就好了。
最后把每一段拼起来,稍微分讨一下。
T1之前在哪看过 qwq。
首先先二分答案,问题变为选 \(m\) 个点使得每一个关键点(到任意被选点距离的最小值)\(\le x\)。
把一定选 \(m\) 个点变为至多选 \(m\) 个点,问题又变为选最少的点使得能覆盖每个关键点(覆盖自然指距离 \(\le x\))。
这个可以“贪心”。用 \(f\) 数组和 \(g\) 数组记录本子树最深的未被覆盖关键点和最浅的被选点,然后类似树形 DP 地讨论一下。
T3 需要一点分析。(膜拜 Alex_Wei。)
考虑每个点能被取到的最大 \(z\) 值(记为 \(mx\)),这个值会根据它的父亲(以及其它已被确定的值)决定。
然后统计 \(mx_i=z\) 的个数 \(cnt_z\) 及其前缀和 \(sum_z\),则一个数被确定当且仅当 \(sum_i=i\) 且 \(sum_{i-1}=i-1\)。
下午
P7831 [CCO 2021] Travelling Merchant,P12576 [UOI 2021] 数字图。
T1 可以写出一个有后效性的 DP。这不行,我们需要无后效性。
\(f_u=\min(f_u,\max(r_i,f_v-p_i))\),其中第 \(i\) 条边为 \((u,v)\)。
我们把 \(r_i\) 的贡献提出来,然后把这条边删去。另外一边的东西利用拓扑排序维护。
(说实话我有点蒙。)
T2 是个(假的)博弈题。
我们关注到特殊性质中有一档“只有两种点权”。
这种情况下 A 只会走 \(1 \rightarrow 2\) 的边,B 只会走 \(2 \rightarrow 1\) 的边。
把这些边提出来,那么出度为 \(0\) 先手必败。把它去掉则有先手必胜的状态。这样“拓扑”删点。
现在不止两种点权也是一样的。二分答案,小于的为 \(0\),大于等于的为 \(1\) 就好了。
晚上
怎么大家都在出题啊。去出题了。
20251111
双十一 win,大家期中考 win。
早上
继续出题。出完了。
下午
Parking,地铁。
晚上
走迷宫,建造军营,庆典。
tarjan 大集合。
建造军营之前做过???。
好像比之前进步了,现在起码能马上想到缩点后成为一棵树,然后树形 DP。
但是 DP 想假了。首先得不重不漏(意味着得有钦定),然后分讨。
(剩下的有缘更吧。)
这两天状态不是很好,回家后和返校后经历了一点点事情。
20251112
早上
打比赛。\(100+0+0+25=125\) rk \(40+/80+\) 也是没谁了。
T1 甚至不是正解是 \(O(nm^2)\) 飞过去的。
T2 和 T3 的暴力都没了。
下午
听评讲。
由于他们期中考,我们下午不用去上课,去打 ball 了。
T1 的 DP 可以优化。可以“倍增”“卷积”“矩阵”优化到 log,也可以 \(1+2+\dots+\sqrt n \ge n\)(吗?反正类似性质)优化到 \(\sqrt n\)。由于时间不够不写了。
T2 是神秘 DP 和大分讨(对于特殊情况)。
T3 是诡异大力推式子,不做了。
T4 是 P14402/AT_joisc2016_j。惊人注意力后发现可以最短路,神秘。
晚上
奖学金颁奖,然后回来补题。
20251113
数位 DP 专场。我 ************
早上
Kathy 函数,代码拍卖会,Odometer S,数数。
哇塞我数位 DP 全还给老师了。
T1 好神秘啊,找性质完全找不到,结果转成二进制就很显然了。
给了 \(f(1),f(3),f(2n)=f(n),f(4n+1)=2f(2n+1)-f(n),f(4n+3)=3f(2n+1)-2f(n)\)。
\(4n+1\) 二进制后两位是 \(01\),\(4n+3\) 则是 \(11\)。
通过数学归纳法的推式子可以得到 \(f(x)\) 就是 \(x\) 的二进制下的翻转。
然后给定了范围,就是找某范围内 \(x\) 的二进制翻转等于它自己(也就是是个回文串)的个数了。
注意范围有 \(10^{1000}\)。
为什么还要高精度!不写了。
T2 首先得看出这个数字相当于最多 \(9\) 个 \(11 \dots 1\) 相加。(注意这些数字最长的有 \(10^{18}\) 位。)
由于 \(p \le 500\),预处理出它们 \(\mod p\) 的余数。(它们的余数有循环节。)开一个桶记录余数为 \(i\) 的个数。
然后类似“背包”的 DP 就结束了。
要注意,由于必须出一个数字,因此得事先放一个最大的。
还有选物品的时候要从桶中找出 \(s\) 个数字,可以相同,算是插板法。
T3 先枚举出现次数最多的数字,然后数 TA 出现次数比其它的总出现次数还多的数的个数。
然后发现会算重,如 \(1122\) 在 \(1\) 和 \(2\) 中都被算了一次。那就枚举两个数字,求它们俩出现次数相同的数个数就好了。
T4 怎么是大力推式子啊。烦死了。
下午
老师看我们做的太慢了,没给我们放新题。然后我们纷纷归档。
晚上
储能表,Magical Gates,组合数问题。
T1 首先得转换成 \(i \bigoplus j \ge k(>k)\) 的总和与对数。
然后每一位贡献独立,因此数位 DP 可以解决。
T2 由于区间太大,因此不能直接做。
但 \(10^{1000}\) 大约是 \(2^{3333}\),因此应该求出 \(d_i=x\) 的 \(i\) 数量。
这个也是数位 DP 能做的。但是十进制转二进制还是要高精度!我不做了。
T3 有 NOIP 原题,但不保证 \(k\) 是质数,且可以 \(O(nm)\) 前缀和预处理。(那是道黄的。)
由于 \(k\) 是质数,可以用 Lucas 定理:\(C_n^m=C_{n \div k}^{m\div k} \times C_{n\bmod k}^{m \bmod k}\)。层层递归,可以得到一个 \(k\) 进制的表示。
\(C_n^m \bmod k=0\) 当且仅当上面那一坨中有至少一项为 \(0\),也就是那一项中 \(n < m\)。
然后又可以数位 DP 了。上限就是 \(n\) 和 \(m\),转化为 \(k\) 进制就好。
数位 DP 除了平常的递归写法,还有神秘的循环写法。
注意挖掘其中的神秘性质。
同时注意一些细节和小巧思。
比如说可以用 vis 数组来记忆化,也可以 memset(f,-1,sizeof(f))。让 f 数组一开始是非法的就好。
设状态时想好哪些需要维护,哪些不需要维护,以及代表的意义是什么。比如第二天(啊,因为我第二天写的总结)的 T4,下标应该表示当前还剩下多少没有删掉,而不是当前已经有了多少(这样不好记忆化)。
20251114
早上
Piling Papers G,XOR and Even,Different Sum,淘金。
思考的最后十分钟发现 T4 十分可做,但没时间认真详细思考了。
不难注意到 \((i,j)\) 的点数量为 \(g(i) \times g(j)\)。其中 \(g(i)=\sum [f(x)=i]\)。
然后只需要求 \(g(i)\) 数量就好了。在这之后排序然后优先队列。
由于每一位只有 \(1 \sim 9\),\(f(x)\) 的数量不多,它们的质因子只有 \(2,3,5,7\)。于是数位 DP 的状态就很少了。
T1 要预处理。长度小的肯定可以,因此只需要算长度等于的。由于可以加前可以加后,因此需要钦定一个当前匹配到的区间。\(f_{t,i,j}\) 是刚好匹配到 \([i,j]\) 的,\(g_{t,k,i,j}\) 是匹配到 \([i,j]\),但第 \(k\) 位是 \(<s_k\) 的(也就是这一位比人家小,那么前面的要相同,后面的都随便)。推亿下式子就好了。
T2 这个“偶数”就十分难搞啊。
是任意的数,所以无法转化为两个前缀异或和。所以只能用线性基。
怎么处理偶数呢?两种方法,一种是在最前面加最高位,一种是记 \(b_i=a_i \bigoplus a_{i+1}\)。
然后我们先抛开区间的限制,想想要是在全局那怎么做。
- 给一个数,取任意数使得它们和给定数的异或和最大。显然贪心。
- 给一个数,求“取任意数使得异或和 \(\le x\)” 的方案数。这个需要在线性基上推一下式子,具体我还没搞懂。
现在给了一个区间,怎么办?
可以分治,也可以用一个叫“时间戳线性基”的东西配上扫描线,加入数字时如果遇到时间更早的就代替它,处理询问时判断当前位的时间戳是否 \(\ge l\)。
T3 不会。
20251115
早上
打模拟赛。最终得分是 \(100+10+23+0\)???
冷知识:并没有任何挂分。
下午
听讲题。
T1 可以是曼哈顿转切比雪夫。
哦 T2 是紫的难怪我做不出来。
但是二分图我也想到了啊。【哦由于是带权的然后就没想了,想到贪心去了。】
md 我是废物。
T3 是什么鬼。原来这必须【?】枚举子集吗。简单转化后需要一个单点加一个单点减然后把数组归零。到这一步我想到的还是贪心,结果 你告诉我得 \(f_S \leftarrow \max{f_{S \setminus {a}}}+[\sum S 中所有元素 =0]\)???
简单解释一下。把一个集合切成几个子集(它们子集和都为 \(0\)),那么合并它们的代价就是 \(\sum (siz-1)=n-cnt\)。(合并?一个单点加单点减就相当于连一条边,且一次操作一定会使某数 \(=0\)。)为了使代价最小,就要拆成最多数量的子集。
我们枚举一个子集 \(T\),那么 \(f_S \leftarrow \min(f_T+f_{S \setminus T}),f_S \leftarrow 1 若 \sum S=0\)。
但这样代价是 \(O(3^n)\) 的。
优化一下,原 \(f_S\) 一定保存了一些 \(0\) 子集和一个 \(\ne 0\) 子集,那么只需要每次只枚举一个数,如果能合并进那个 \(\ne 0\) 子集就可以为答案 \(+1\)。
这样是 \(O(n\times 2^n)\) 的。
然后?然后就有点忘了。似乎用到了无根树的 \(n^{n-2}\),然后……
T4 是大大的组合数学题再套数位 DP。
临走前被教练压力了。本来已经心如止水,结果教练还拖堂,拖堂就算了,还 Q 我们:“你们回去给我打 ABC,这是一个强制性的要求。你们回去就不要再打游戏了……”
md 这 ABC 谁爱打谁打,高铁票已经订好了,今晚我就飞去武汉,刚好他们在小吃街,今晚我就去找 LHY 然后和他在小吃街直接结婚,然后直接手牵手在小吃街度蜜月,然后直接在武汉买一套房,我以后再也不回来了,请大家叫我 L 夫人。
晚上
回家。
被教练压力着打了 ABC432,rk \(393\),rating \(+=80\)。非常高兴。
由于键盘不好(笔记本自带),做出前三题的时候已经 \(20\) min 了。
然后看 T4,看懂在问什么之后直接跳。
注意到 T5 很多人做,打开一看直接切了。(啊不吃了发罚时,数组下标要 \(+1\))。
然后发现 rk 很高。很高兴。
发现 T7 也很多人做,尝试下场但一无所获。
看一眼 T6 发现woc 这不是今早 T3 吗!!! 一样的单点加单点减,一样的 \(2^n\) 数据范围,只不过没问方案数而是任意输出一种方案!!!啊啊啊!!!然后切了,感觉十分良好。
总感觉有点像之前做过的哪道题?
然后坐等比赛结束。和教练交流,但教练似乎把焦点放在了“单点加单点减”“区间加”的地方。
甚至找到了去年 \(5\) 月的一道题。
upd:找到了,原来是均分纸牌吗。
20251116
早上&下午
在家休息。
晚上
打 ARC。一坨,只 A 了第一题。
大家 \(3\) 分钟就把第一题切了。然后我一直 WA,不知道怎么个错法。
然后就一直搞到了比赛结束前 \(20\) min。
后果显而易见,T2 发现了性质但是没时间做了。
20251117
早上
P7456,P9717,P4696,P2292。
睡着了导致 T1 意识到原来我能做的时候已经没剩多长时间了。
T1 显然【并非】有 DP 方程 \(f_i=\min(f_k+1)\),其中 \(k \ge j-1\),\([j,i]\) 是一个可以被匹配的串。
一开始选到最长的以 \(i\) 结尾的串,然后用线段树维护 DP 方程就好了。
但是有线性做法,从后往前区间覆盖。
T4 类似的,只不过要记录一个状压表示从当前点往前能覆盖的区间长度种类。有 \(f_i=f_j\) 们的或和,再拿一个状压表示前面的几位的 \(f\)。若 \(f_j=1\) 且 \(g_{i,i-j}=1\) 那么可以接上。
T3 过于神秘。转化为某区间内 \(i\) 前面小于 \(p_i\) 的数的数量,拉一个树状数组维护。
T2 对于 \(000 \dots 111\) 的情况,会变为 $00 \dots 101 \dots $,而这个 \(0\) 和 \(1\) 被拆出去就再也不会回来了。最后会变为 \(0 \dots 01\) 的形式(\(0,1\) 交换也一样)。最后求一个“周期”就好。
下午
自己做题。
他们研学回来了,几天不见甚是想念。
语文老师临时有事不见了,结果英语老师也有课,感谢远哥来救场。远哥好帅!!!
晚上
奖学金颁奖。小学弟对我绯闻对象贴脸开大,服了。
P3160,P3226。
T1 注意到最多只有 \(8\) 个 X。从小到大填数,状压设每个空是否有被填数。但这样的话一些 . 点可能也会成为低点,因此需要容斥。
T2 之前做过吗有点意思。难怪我随手画出了一个 \(\times 2,\times 3\) 矩阵,这样在矩阵上相邻的就不能选。但也没人告诉我矩阵大小是 \(\log\) 的啊!小的可怜,直接状压!
【原来我还写了个 \(O(12 \times 2^{17}\times 2^{17})\),由于洛谷数据水才过去。也难怪 SPOJ 过不去呢——但现在 SPOJ 不能用了,哎。换了个 \(O(17 \times 2^{12}\times 2^{12})\) 跑的飞快。】
惩罚了对我绯闻对象贴脸开大的小学弟。
20251118
早上
P3264,P3736,P4221,P4363。
T1 如果没有颜色的限制,就是一个很板的最小斯坦纳树板题。(顺便复习了一下最小斯坦纳树的两个转移:度不为 \(1\) 时集合合并,度为 \(1\) 时最短路松弛。)
但是现在不同颜色的可以不连通?直接状压,\(f_S\) 表示在集合 \(S\) 中的颜色连通的方案数,然后集合合并。
正确性可以证明,因为最优解一定在里面,而非最优解一定不优。【主要是边在不同颜色中可能算重,状压一下就可以避免这种情况。】
原来我之前做过啊?!?!?!
T2 之前也做过啊?!??!?!
\(k\) 小的可怜,\(n\) 也不大,区间 DP 套状压。
每 \(k-1\) 个数字可以合并成一个数字。若 \(len=x(k-1)+1\) 那么还要考虑把它们合并成一个数字的价值。
T3 也太有意思了。
\(n\) 那么小,直接状压!
首先那一大坨限制相当于在说不能有欧拉回路(单点也不行),预处理某集合是否合法,以及 TA 的人口总数。
有 \(f_{S\cup T}=\sum f_S \times \dfrac{peo_T}{peo_{S\cup T}}\)(省略了 \(p\) 次方,下同)。
这是一个子集 DP 可以解决的事,可以通过第一个 subtask。
我们把 \(peo_{S\cup T}\) 提出来,看到这是一个类似“交集为 \(0\) 的或卷积”的东西。于是我们愉快地学习子集卷积后即可 AC 此题。
具体地,首先学习FWT后,我们可以解决“或卷积”。但是这里要求 \(S\cap T=\emptyset\),可以在数组前面加一维表示本状态的 popcount。
为什么 FWT 如此简洁啊,比什么 FFT 和 NTT 短多了。
T4 很神秘哦。所谓“轮廓线 DP”哦。
由于“左上角所有点都要被放棋子”,所以可以被选择的点组成了一个折线,我们叫它“轮廓线”。右上向左下,\(1\) 表示向下,\(0\) 表示向左。画图可知,放一个棋子带来的影响是一个 \(01\) 变成了 \(10\)。于是可以状压 DP 解决。
下午
改题?
晚上
改题&写总结。
由于复健 FFT 导致浪费了大量时间。
20251119
早上
模拟赛,\(95+13+8+0=116\)。
哈哈怎么越冲刺越菜呢。
下午
听评讲。
啊 T1 少考虑了一点点情况。
啊 T2 原来是倒着做 DP。
啊 T3 原来是神秘哈希维护贪心。
啊 T4 原来是(推出某性质后进行 DP)的加强版。
晚上
补题。
20251120
早上
CF。
下午
CF。
打了 \(20\) min 去跑运动会了,获得 \(400\) m \(1\) st(\(1\) min \(19\) s)\(+ 4\times 100\) 复赛资格(\(6\) th)。
晚上
20251121
早上
CF。
打到 \(10\) 点左右突然被叫去跑运动会,获得 \(4\times 400\) m \(4\) th。
下午
运动会。获得 \(4\times 100\) m \(4\) th 与 \(20\times 50\) m \(1\) st。
晚上
全真 CF·C2134。
20251122
早上
打比赛。bushi \(40+40+14+50\) 我都不好意思打出来。
服了 T1 都想不出来是人吗。
下午
听评讲。
T1 过于神秘。大意:\(n\) 种硬币满足 \(a_i=k\times a_{i-1}\)(\(a\) 是面值,\(k\) 不一定相同且 \(\ge 2\)),每种硬币有一种独特的颜色。每次可以向 ATM 机询问一个金额 \(X\),它会吐出最少的硬币使得面值之和 \(=X\)。问最少查询几次可以确定每种硬币的颜色。
首先对第 \(n\) 种硬币不用管它,加一个特别大的数字就能区分。
第 \(i\) 种硬币最多出现 \(k-1\) 次(将 \(k\) 记为 \(b_i\))。
对 \(b\) 排序。设有 \(m\) 次询问,每次询问相当于对每一个 \(a_i\) 分配一个 \([0,b_i)\) 的数。值域在 \([0,b_i)\) 的 \(m\) 元组最多只有 \((b_i)^m\) 个。如果不同 \(m\) 元组数量 \(<i\) 那么我们无法用不同的 \(m\) 元组去区分前 \(i\) 种硬币,即 \(m\) 太小了。
(写着写着才搞懂 T1,真是太神秘了。)
T2 也是过于神秘。
大意:\(n\) 头狼,每次可以上下左右走一步,\(m\) 步后要走到同一个点,问方案数。(不是“同一个点”的选取方案数,而是走到的方案数。)
“上下左右”使得 \(x,y\) 坐标的取值很不好。我们使用“曼哈顿-切比雪夫”大法,把 \((x,y)\) 转为 \((x+y,x-y)\),那么上下左右就变成了四个对角线。
然后就发现 \(x\) 轴的贡献和 \(y\) 轴的贡献独立了。于是可以分开计算。
直接枚举中间的点!!!
p.s:推组合数式子的时候一定要想清楚 TA 的组合意义,不然就会空虚调试大约 \(1\) day。
T3 和 T4 咕咕了。
晚上
回家。
20251123
早上&下午
在家。
晚上
打比赛,\(19:00 \sim 22:20\) 共 \(3\) h \(20\) min。
不绑点是 \(100+41+0+12\),实际应该是 \(100+35+0+0\)???
T4 挂分了 qwq。
20251124
早上
补题。
T1 人均题,过。
T2 它怎么敢放 CF1870G 的,CF \(2300\) 的黑题啊!!!
T3 神奇的根号分治。先让我咕一会儿。
T4 大力式子题。
大意:
首先有性质:不同 \(\gcd\) 的个数最多只有 \(\log\) 个(因为要变的话最少都要 \(\div 2\))。
因此处理前后缀 \(\gcd\),这样的前后缀 \(\gcd\) 对数为 \(\log^2\) 级别。
这样那一大坨 \(k\) 次方变为一常量。后面的 \(a_i+a_j\) 可以通过扫一遍 \(qz_x\) 和 \(hz_y\) 对应的区间来累加系数。
现在我们需要快速求出 \(\sum_{x=0}^V S \oplus x\)。
拆位,当 \(x\) 的第 \(i\) 位是 \(0\) 或 \(1\) 时,\(S\) 对答案的贡献也是不同的。
因此求出 \(\sum_{x=0}^V\),\(x\) 的第 \(i\) 位是 \(1\) 的个数。这个可以数位 DP 求。(终于能用上数位 DP 了!!!)
\(V\) 不到 \(30\) 位,因此前面的位可以直接取模。
具体地,先求出 \(S^k \bmod 2^{30}=A\),再求出 \(S^k \bmod 998244353=B\),那么 \(S^k\) 的前面的位就是 \(B-A\)。
酣畅淋漓啊!(同时膜拜 Sam_Yang 几乎场切 T4。)
下午
想了四道 CF 题。
晚上
做题。好新啊,甚至是前一天的场。
T1 题解,T2 题解,T3 题解。
T2 题解打不开,去洛谷保存站看吧。
T4 很好玩。
20251125
早上
打比赛。终于 A 题了,可惜是 T3。好像是 \(20+12+100+0\)。
bushi 怎么 T1 都切不掉了。
还有 T2 怎么挂分了!!!!!
下午
哦原来 T1 我也想到 DP 了呀,可惜为什么不去 DP 至少用了多少匹马呢。
哦原来 T2 预处理 \(10^5\) 质数会 TLE 呀。本人实测预处理 \(6000\) 内质数就能过,小一点会 WA。
题意:\(n\) 个数,要求选最多的数,使得两两相乘不为立方数。\(n\le 10^5,a_i\le 10^{10}\)。
本来观察到 \(\ge \sqrt a\) 的质数最多只出现一次,相乘后只出现两次,所以可以直接丢掉,但这样会 T。
要不先解释一下其它的质因子怎么求。对 \(3\) 取模,\(0\) 和 \(0\) 匹配,\(1\) 和 \(2\) 匹配。\(0\) 什么的自动忽略,只需要记录下 \(1\) 和 \(2\) 的质因子相乘结果。
于是退而求其次。\(\ge \sqrt[3]{x}\) 的质因数最多只出现两次。把 \(\le \sqrt[3]{x}\) 的质因数处理掉后,最多只有两个质数,大力分讨。丢进 map 维护两个集合的数的数量,一对数字只能选择一个集合的数字。特别的,完全立方数们只能选一个。
咦 T3 我常数跑的飞快哈哈哈。std 被我卡 MLE 了。
T4 什么鬼。
晚上
一口气给我喂了五道题???
浙公网安备 33010602011771号