05 2021 档案
发表于 2021-05-23 13:05阅读:16评论:0推荐:0
摘要:[雅礼集训] Arg dp套dp好题。 考虑做lis的两种方法: 1.设f[i]表示做到i的最长子序列长度 2.设f[i]表示长度为i的上升子序列最后那个数最小是多少 第一种方式不好设状态,我们考虑第二种 显然,如果知道f里有哪些数字,就可以还原f 那么我们设一个状态 f [ S ] [ F ] f
阅读全文 »
发表于 2021-05-20 13:56阅读:45评论:0推荐:0
摘要:总结 还算正常发挥吧。T1高精度没有管它,T2打的 O ( 26 n + n l o g n ) O(26n+nlogn) O(26n+nlogn),离正解 O ( n ? ) O(n?) O(n?)很近了,只是不知道怎么去把 C C C为奇的个数和 A B AB AB拆分的方案数算出来,就只能用前
阅读全文 »
发表于 2021-05-15 16:30阅读:6评论:0推荐:0
摘要:#include <bits/stdc++.h> using namespace std; const int N = 2.5 * 1e4 + 5; const int M = 5 * 1e4 + 5; struct rec { int x, y, z; } e[M]; struct edge {
阅读全文 »
发表于 2021-05-03 22:08阅读:15评论:0推荐:0
摘要:[HEOI2013]SAO 有一张连成树的有向图,求拓扑序的数量。如何厘清状态和方案是计数 d p dp dp 的难点。 如果看成 DAG,你会发现子树有重叠部分,不好计算。 考虑树形 d p dp dp ,设 f i , j f_{i,j} fi,j 表示 i i i 在以 i i i 为根的子
阅读全文 »
发表于 2021-05-02 22:58阅读:14评论:0推荐:0
摘要:树链剖分 eg.求 d i s ( x , y ) dis(x,y) dis(x,y) d i s ( x , y ) = d i s ( x ) + d i s ( y ) − 2 d i s ( l c a ( x , y ) ) dis(x,y)=dis(x)+dis(y)-2dis(lca(
阅读全文 »
发表于 2021-05-02 22:56阅读:63评论:0推荐:0
摘要:双向BFS 若相遇点是起始点,则步数为 s t e p n o w ∗ 2 step_{now}*2 stepnow∗2 ,因为起点和终止点拓展的步数相同 若相遇点是终止点,则步数为 s t e p n o w ∗ 2 − 1 step_{now}*2-1 stepnow∗2−1,因为起点多拓展
阅读全文 »
发表于 2021-05-02 22:54阅读:21评论:0推荐:0
摘要:四边形不等式 不妨设 a < c a<c a<c,有: w a , c + w a + 1 , c + 1 ≤ w a + 1 , c + w a , c + 1 ( 1 ) w_{a,c}+w_{a+1,c+1}\leq w_{a+1,c}+w_{a,c+1} (1) wa,c+wa+1,c+1
阅读全文 »
发表于 2021-05-02 22:53阅读:14评论:0推荐:0
摘要:分块 分块+分块 (区间分块+权值分块+权值分块前缀和)pay attention:单点修改(不支持区间修改) 分块+树状数组/权值线段树 equals to 带修主席树 分块+二分(块内重排)pay attention:支持区间修改 分块+链表 [Ynoi2018] 未来日记 AC祭。 其实难点在
阅读全文 »
发表于 2021-05-02 22:51阅读:83评论:1推荐:0
摘要:二分图的带权最大匹配 KM 算法只能在满足 带权最大匹配一定是完备匹配 的图中正确求解。 交错树:在匈牙利算法中,如果从某个左部节点出发寻找匹配失败,那么在 DFS 的过程中,所有访问过的节点(若干条路径),以及为了访问这些节点而经过的边,共同构成一棵树。这棵树被成为交错树。 顶标:如果任意 i ,
阅读全文 »
发表于 2021-05-02 22:51阅读:22评论:0推荐:0
摘要:动态DP 动态DP详解 Luogu P4643 【模板】动态dp Part 1. 序列动态DP 题目描述 一段区间的价值的定义如下: 可在区间内取任意个数, 这些数位置不能重复 且不能相邻. 其和的最大值为这段区间的价值. 如有序列(1,-1,-2,3,4,2,-1),则区间[4,6]的价值为5。
阅读全文 »
发表于 2021-05-02 22:50阅读:20评论:0推荐:0
摘要:Power Calculus 不难想到以下剪枝: 每次操作新生成的数,当 > n >n >n 时必须执行减法,当 < n <n <n 时必须执行加法,尽量选数值大的数 数列中的数必须不重复 若每次乘二都不能到达 n n n ,则退出 然而第一种做法无法搜出来答案,主要是在于前面部分可能执行一次减法,
阅读全文 »
发表于 2021-05-02 22:49阅读:9评论:0推荐:0
摘要:点分治 点分治适合处理大规模的树上路径信息问题。 求两点间距离为 k k k 的合法路径总和:使用扫描法 L L L, R R R每次选择重心 p p p ,因为每一层的所有递归过程合计对每个节点处理 1 1 1 次,而点分治最多递归 l o g n logn logn 层,复杂度可以保证求重心必须
阅读全文 »
发表于 2021-05-01 10:30阅读:18评论:0推荐:0
摘要:[Ynoi2019 模拟赛] Yuno loves sqrt technology III 分块后,预处理 F i , j F_{i,j} Fi,j表示第 i ∼ j i\sim j i∼j块的众数的出现次数。 用vector按顺序存每个数值所有元素的出现位置。 再记录每个元素在相应vector里
阅读全文 »
发表于 2021-05-01 10:29阅读:23评论:0推荐:0
摘要:四边形不等式 wqs二分 论DP的各种优化 [APIO/CTSC 2007]数据备份 f x , 0 = m i n ( f x − 1 , 0 , f x − 1 , 1 ) f_{x,0}=min(f_{x-1,0},f_{x-1,1}) fx,0=min(fx−1,0,fx−1,1) f
阅读全文 »
发表于 2021-05-01 10:28阅读:4评论:0推荐:0
摘要:meet in the middle 折半搜索思想。 CF525E Anya and Cubes 每个数组有三种情况:被选,被选且贴了标签,没被选 两边状态没有重复的。 折半搜索即可。 时间复杂度 O ( n ∗ 2 n ) O(n*\sqrt{2}^n) O(n∗2 n) Vertex Cove
阅读全文 »
发表于 2021-05-01 10:27阅读:25评论:0推荐:0
摘要:### DFS 树 DFS 树 移除边来构建二分图 问题 3:考虑一个无向图,找到所有的边,将这些边移除后,图将变为二分图。 这题是 codeforces 19E - Fairy。官方没有发布题解,但一个 非官方题解提到了用复杂的数据结构动态树解答。利用 DFS 树,我们可以不使用高级的数据结构来解
阅读全文 »
发表于 2021-05-01 10:25阅读:31评论:0推荐:0
摘要:[CSP-S2019] 树上的数 这显然是一个树上贪心的问题。 [CSP-S2019] 划分 借助干草堆的思路:所叠层数最高时,其底层最窄。 不难写出状态转移方程: f x = f y + 1 ( s u m x − s u m y > = g y ) f_x=f_y+1(sum_x-sum_y>=
阅读全文 »
发表于 2021-05-01 10:23阅读:79评论:0推荐:0
摘要:A*算法 我们的目标是尽量将终点取出 k k k 次,所以将它到终点的最短路近似的看作未来的路径长度。如果当前花费+未来的路径长度更小,就更有可能成为答案。显然,当前取出的点走最短路一定会成为答案之一,当然,对于一些不在最短路径上的点,只要当前花费+未来的路径长度比其他状态小,也会成为答案。 涂满它
阅读全文 »
发表于 2021-05-01 10:23阅读:9评论:0推荐:0
摘要:[HNOI2016]最小公倍数 思维题。 考虑离线。然后判断 i , j i,j i,j 是否有通路,以及经过的边大小不超过 b b b ,经过了一条正好等于 a a a 的边。 考虑转化问题。本题实际上是求,在边 ( u , v ) (u,v) (u,v) 满足 a x ≤ a a_x\leq a
阅读全文 »
发表于 2021-05-01 10:21阅读:11评论:0推荐:0
摘要:CF11D A Simple Task 题意:给定一个无向图,求简单无向图的环数。保证没有重边(即不存在大小为2的环)。 注意到两种状态虽然经过的点相同,但是经过的点的顺序不一样,以及终点不一样,是不能算作相同的环的。 trick:对于每个简单环,我们都以环中序号最小的点为起点进行dfs。 #inc
阅读全文 »
发表于 2021-05-01 10:20阅读:12评论:0推荐:0
摘要:CF8E Beads 确实不会做。。。 显然满足题意的二进制串的首位必须是 0 0 0。考虑一位一位地确定答案串。假设已经确定了答案串的前k位,我们假设第 k + 1 k+1 k+1 位是 0 0 0,则要设法统计出满足条件的串的个数 s s s。 那么如果 s < m s<m s<m,则答案串第
阅读全文 »
发表于 2021-05-01 10:18阅读:9评论:0推荐:0
摘要:[HEOI2016] 排序 有点意思。。。 是一道思维题。事实上我们不需要直接,而是设定一个值 p p p ,对于 x < p x<p x<p ,将它的位置上的数设为0。对于 x ≥ p x \geq p x≥p ,将它的位置上的数设为1。我们只需检查最后 q q q 位置是否为零即可,然后调整 p
阅读全文 »