08 2022 档案
摘要:传送门 以前只知道有这么个套路但不理解为什么要这么做,一直以为是个人类智慧构造 更详细的解释 考虑我们要还原的信息是树的形态 考虑对于任意两条相邻的边 \(e_1=(u, v), e_2=(u, w)\),能得到具体连边方式的条件是: 存在一组询问使 \(e_1\in E, e_2\notin E\
阅读全文
摘要:传送门 NOI 打成这样不如不去(?) 场上花了 4 个小时过了这题,感觉十分玄幻(?) 第一个结论是那个顺序其实是无效限制 考虑让其他人和 hehe 相遇后就一直跟着 hehe 走 等到所有人都相遇了再光速面基 于是就是找一个点使得到所有出发点(包含 1)距离的最大值最小 发现要么在点上要么在边上
阅读全文
摘要:传送门 只会 \(O(3^{\frac{n}{2}})\) 数据随机那档 meeting in middle 的时候在两边多随点状态就行了 但是我看错时限卡时卡错了,寄 然后正解: 首先发现本题一定有解 证明考虑鸽巢原理,有 \(2^n>p\) 种可能,那么一定存在两个集合权值相等 关于「权值相同的
阅读全文
摘要:优雅的徽章交换往往只需要最朴素的预约方式
阅读全文
摘要:传送门 垃圾题解毁我青春 将给的式子拆开,发现是 \[\sum\limits_{i=1}^k\binom{k}{i}d^ia^{k-i} \]对组成 \(x\) 的每个质因数 \(p\) 考虑其最大次数 当 \(p\nmid d\) 时,代入 \(a=p\) 发现原式 \(\not\equiv 0\
阅读全文
摘要:传送门 数据范围很大,肯定不能直接背包 考虑一个类似梦幻岛宝珠的做法 限制是加在体积上的,那么对物品二进制分组,将 \(2^i\) 个物品绑成一个 那么从低到高逐位做背包,每一位继承上一位的结果 注意继承的时候只继承上一位与 \(L\) 的上一位的结果 复杂度 \(O(能过)\) 点击查看代码 #i
阅读全文
摘要:传送门 只会时间 \(O(n\log^2 n)\),空间 \(O(n\log n)\) 向上倍增是容易的 向下树剖拆成 \(\log\) 条链,每条上分别倍增 对每种颜色的点开 vector 按 dfs 序排序以找到某条重链上第一个颜色为 \(c\) 的点 点击查看代码 #include <bits
阅读全文
摘要:传送门 唔嗯……基环树染色?啊啊,那树点就是直接乘若干个 \(k-1\) 嘛! 给环染色?……容斥一下? 断环为链的话,第一个点有 \(k\) 种选法,剩下的点有 \(k-1\) 种选法 再减去第一个点和最后一个点颜色相同的情况 那么把这两个点合成一个,就是减去 \(f_{n-1}\) 所以 \[f
阅读全文
摘要:传送门 [CF468E] Permanent 考虑将 \(A_{i, p_i}=w\) 转化为一条连接 \(i, p_i\),权值为 \(w\) 的边 那么问题转化为二分图完美匹配 将 \(w_i\) 拆为两条边 \((w_i-1), 1\) 这样任意两个点之间都至少有一条权为 1 的边 这样的好处
阅读全文
摘要:传送门 数据水了,\(O(nq)\) 过了,我鸽了 我跟 f____u 打赌我这篇博会不会被踩爆 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 100010 #define
阅读全文
摘要:传送门 日常签不上到。 日常 普及- 做一年然后高时间复杂度高实现复杂度艹过去。 先说我的垃圾做法: 定义序列 \(b_k(i, j)=(a_{i,k}', a_{j, k}')\) 根据题面中 \(a'\) 定义知 \(b(i, j)\) 有循环节 \(t=\operatorname{lcm}(l
阅读全文
摘要:传送门 屑卡常题差不多得了 首先发现相邻点间连边后,原问题等价于动态图支持加删边,判断是否存在环 一个想法是 set 维护出相邻点间的边,然后线段树分治 + 可撤销并查集 这样是 \(O(n\log^2 n)\) 的,带 6 倍常数 赛时初始化少了挂了 3 个点然后又被卡常 2 个点 然后一个优化:
阅读全文
摘要:传送门 哭死。 “每条边只能被覆盖一次”的条件都写脸上了还不知道是网络流。 知道是网络流了就按题意连边即可 需要线段树优化建图 复杂度 \(O(能过)\) 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3
阅读全文
浙公网安备 33010602011771号