摘要:
最小割 #最短路 #对偶图 最优策略下不可能出现非整数的边权,一个自然的想法就是对原图建图然后求最小割 但是这不能满足时间限制 观察这个图,有建图方法,它一定是一个 平面图,考虑这样的建图: 对于每个被分出的格子,都在这个格子中建一个点表示它,然后对于两个格子之间的连边,这条边的权值就是与它相交的一 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(22)
评论(0)
推荐(0)
摘要:
决策单调性 #dp 满足决策单调性,双端队列维护,可以二分出每两个限制的边界位置 // Author: xiaruize #ifndef ONLINE_JUDGE bool start_of_memory_use; #else #define debug(x) #endif #include <bi 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(16)
评论(0)
推荐(0)
摘要:
妙妙题 #dp 转换一下 \(a_i^2\),发现这个值等价于操作 \(2\) 次最后得到结果一样的方案数 那么这就是容易的了 \(dp_{k,i,j}\) 表示操作了 \(k\) 轮,第一次的上面取了 \(i\) 个,第二次的上面取了 \(j\) 个 转移分 \(4\) 种暴力就行 注意空间限制要 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(41)
评论(0)
推荐(0)
摘要:
Dinic #网络流 #拓扑排序 每个点向保护的点建图,对这个图拓扑排序,然后就是求这个图的最大完全子图,就是 \(dinic\) 板子 // Author: xiaruize #ifndef ONLINE_JUDGE bool start_of_memory_use; #else #define 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(12)
评论(0)
推荐(0)
摘要:
二分图最大匹配 #贪心 如果没有字典序最小的限制,直接二分图最大匹配就可以了 考虑怎么让字典序最小 倒序匹配左侧节点,对于每个节点,优先尝试字典序较小的方案,用 hungary 就行 另,如果用费用流,需要将斐波那契的第 \(10^4\) 位作为费用 // Author: xiaruize #ifn 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(24)
评论(0)
推荐(0)
摘要:
floyd #最短路 floyd 维护最短路和方案即可 因为 floyd 的本质是一个每次加入一个点的 dp ,所以这样的统计是不会重复计算的 // Author: xiaruize #ifndef ONLINE_JUDGE bool start_of_memory_use; #else #defi 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(23)
评论(0)
推荐(0)
摘要:
换根dp #贪心 由限制 \(h_i\) 大于点的度数,最终回到根的答案必然是经过每个节点的 根的答案可以 \(\mathcal{O}(n)\) 的算出 考虑如何换根,分 \(3\) 种情况(假设现在由 \(rt \rightarrow x\)) 当前的 \(rt\) 有多余的出边,那么用这个出边走 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(20)
评论(0)
推荐(0)
摘要:
dp #状压dp #树上dp #预处理 建树,将每个子串的 \(fa\) 设为它的最长的存在的前缀,那么原来的题转化为 对于一棵树标号,使得 \(a_i\) 为 \(b_i\) 的祖先 对于原限制,最多有 \(16\) 个点被影响,可以状压,这样的时间复杂度是 \(\mathcal{O}(3^{16 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(15)
评论(0)
推荐(0)
摘要:
dp \(dp_{i,j,0/1/2}\) 表示考虑到 \(i\) ,用了 \(j\) 个,当前这个位置是 0. 被占用,且联通块内没有完整的 被占用,且联通块内有完整的g' 空 暴力转移即可 // Author: xiaruize #ifndef ONLINE_JUDGE bool start_o 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(17)
评论(0)
推荐(0)
摘要:
dfs #计数 #数学 #妙妙题 考虑限制二,这个限制允许我们将原矩阵的每一位 \(s_{i,j}=a_i+b_j\) 对于每个限制 \(3\) 由 \(a_i\rightarrow b_j\) 权值为 \(s_{i,j}\) 的边 \(dfs\) 可以算一种方案,强制这种方案中出现 \(0\) 这 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(32)
评论(0)
推荐(0)
摘要:
矩阵 #矩阵优化dp #dp #循环矩阵 考虑暴力 \(dp_{i,j}\) 表示第 \(i\) 次操作后停在 \(j\) 的方案数 注意到数据范围为 \(10^{18}\) ,考虑矩阵优化转移 对于每 \(n\) 轮,转移方案是一样的,对应的矩阵也是一样的,时间复杂度是 \(\mathcal{O} 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(29)
评论(0)
推荐(0)
摘要:
Nim游戏 #博弈论 #SG函数 #数学 设数 \(x=\prod\limits_{i=1}^{n}p_i^{k_i}\) 那么 \[SG(x)=\sum\limits_{i=1}^n k_i \]当区间 \([l,r]\) 的 \(\mathcal{xor} _{i=1}^{m} SG(a_i)= 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(25)
评论(0)
推荐(0)
摘要:
dp #贪心 #妙妙题 \(|s|\leq 25\) 从前往后确定每一位,枚举当前这一位填什么字符 考虑确定一个前缀的 \([min,max]\) \(min\) 为将没有确定的位全部填为 \(s_i\) 后的代价 \(max\) 为将没有确定的位全部填成原串中没有出现的那个字符后的代价 算一个串的 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(21)
评论(0)
推荐(0)
摘要:
计数dp #数学 #组合 #去重 最短路径 \(\rightarrow\) 只向右下走 考虑 \(dp_{i,j}\) 表示到 \(i\) 号点,填了 \(j\) 个方案数 注意不可以直接从所有子节点加过来,会重复计算,要把当前点经过另一个点再到目标点的方案减去 // Author: xiaruiz 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(20)
评论(0)
推荐(0)
摘要:
数学 #搜索 枚举两个树上的链的长度暴力统计 可以用淀粉质优化 // Author: xiaruize #define ONLINE_JUDGE #ifndef ONLINE_JUDGE bool start_of_memory_use; #else #define debug(x) #endif 阅读全文
posted @ 2024-03-28 15:27
xiaruize
阅读(16)
评论(0)
推荐(0)
摘要:
树上dp #背包dp #dp #性质 对于一个公司的代价为, \[\text{联通块个数} \times 2 - \text{总点数} \]这个可以 \(dp\) 解决 两个公司的期望是相等的 // Author: xiaruize #define ONLINE_JUDGE #ifndef ONLI 阅读全文
posted @ 2024-03-28 15:26
xiaruize
阅读(20)
评论(0)
推荐(0)
摘要:
枚举 #数学 枚举 r g b 都有的行数 // Author: xiaruize #ifndef ONLINE_JUDGE bool start_of_memory_use; #else #define debug(x) #endif #include <bits/stdc++.h> using 阅读全文
posted @ 2024-03-28 15:26
xiaruize
阅读(17)
评论(0)
推荐(0)

浙公网安备 33010602011771号