摘要: $\mathcal About\ me$ $2018/11/21$ 来自$HB,CHN$ 退役于 $NOIP\ 2018$,可能转战 $USACO$,会继续学习算法,不定期更新博客,平时会打打 $Codeforces$。 如果有愿意与我交流的小伙伴,可以加我 $QQ:1040394902$ 阅读全文
posted @ 2018-11-21 22:47 alecli 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 简要题意:给定一颗树,树边带权,给 $m$ 个询问,每次给 $k$ 个点,询问删除若干条边使得这 $k$ 个点都不与 $1$ 号点联通的最小代价。$\sum k_i \leq500000,1\leq m$ 思考 同时也记录一下虚树的学习。 看完题目,第一时间想到树形 $dp$,每 阅读全文
posted @ 2018-12-11 21:41 alecli 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 这题的树形 $dp$ 很明显,我们发现只可能有两种情况,要么是树要么是环,对于一个环来说肯定是要么都选要么都不选,可以缩点,缩完点之后我们得到了一个森林,不妨用一个源点将这些小树串成一个大树再来 $dp$,后面就显然是一个树上有条件的分组背包了,由于必须要选当前点,所以强制 阅读全文
posted @ 2018-12-09 21:49 alecli 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 感觉这题思路挺不错的 考虑单独的一个人的 $a_i,b_i$,那么就是有 $n a_i b_i$ 个人分数相同,而这个分数相同的区间是 $[a_i+1,n b_i]$,要满足合理性,我们应该选出若干个不相交的区间,使得权值最大(这个权值也就是区间范围相同的人数),这个问题就 阅读全文
posted @ 2018-12-07 21:11 alecli 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 这题竟然卡常 $+$ 卡精度,我 $……$ 令 $f[i][k]$ 表示前 $i$ 个元素分了 $k$ 次的最大值,我们可以得出转移方程($sum[]$为前缀和数组): $$f[i][k] = max\{f[j][k 1] + sum[j] (sum[i] sum[j])\ 阅读全文
posted @ 2018-12-06 22:46 alecli 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 写的第一道斜率优化…感觉这个板题还蛮简单的 首先按普通思路,我们令 $dp[i]$,为前 $i$ 个物品的最小价值,那么可以很容易列出方程: $$dp[i] = min\{ dp[j]+(sum[i] sum[j]+i j 1 L)^2 \}$$ 这是一个 $O(n^2)$ 阅读全文
posted @ 2018-12-05 22:57 alecli 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 这个题过于水… 考虑单独的以 $u$ 为根的一个子树,我们假设 $u$ 的所有子节点 $v$ 形成的子树已经满足条件(即 $v$ 到 $v$ 的叶子节点的距离经过 $f[v]$ 次改变已经达到了深度相等的状态),我们现在只需改变所有 $e\{u, v\}$ 的值使得 $u$ 阅读全文
posted @ 2018-12-03 20:38 alecli 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 吐槽一下这个题,完全就是两个裸题拼一起了,而且两个板子之间毫无联系… 首先我们造一个保证字典序最小的最短路径树,怎么保证字典序呢,先将你存的图按字典序从小到大重新排个序再跑最短路就行了。之后就是:跑 $dijkstra$,$dfs$ 一遍重新建图,如果 $u$ 已经被访问过 阅读全文
posted @ 2018-11-29 21:35 alecli 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 简要题意:给一棵树,每条边有权。求一条简单路径,权值和等于 $K$,且边的数量最小。 由于这条最小路径可以是所有路径中的任意一个,所以所有等于 $K$ 的路径我们必须考虑到,关于树上的路径统计问题,我们选用点分治。 这样一想就是点分治裸题了,由于 $K \leq 1e6$, 阅读全文
posted @ 2018-11-26 22:40 alecli 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题意 "Here" 思考 最近学习一下点分治 本题点分治裸题,也可以用树形 $dp$ 做,在此记录一下点分治的做法: 首先题目要求求出边权和为 $3$ 的倍数的路径个数和,那么我们可以将路径和对 $3$ 取模,树上路径就只分为了三种: $0,\ 1,\ 2$,用一个桶记录个数,那么每次点分治计算的答 阅读全文
posted @ 2018-11-23 23:02 alecli 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 关于矩阵加速数列递推: 给定一个递推数列 $f[i] = a_1 f[i 1] + a_2 f[i 2] … a_k f[i k]$ ,我们普通计算的话肯定是逐个计算,复杂度较大。 我们可以用矩阵表示: $$ \left[ \begin{matrix} f[i] \\ f[i 1] \\ … \\ 阅读全文
posted @ 2018-11-22 22:27 alecli 阅读(463) 评论(0) 推荐(1) 编辑