- 博客(21)
- 收藏
- 关注
原创 CF1681F Unique Occurences两种解法
传送门Analysis不妨设 g(x)g(x)g(x) 为边权为 xxx 的边被且仅被经过 1 次的路径个数。那么答案为 ∑i=1ng(x)\sum_{i=1}^ng(x)∑i=1ng(x)。接下来分析对于特定 xxx,如何去求得 g(x)g(x)g(x)。以这棵树为例,我们设当前要求 g(2)g(2)g(2),即通过且仅通过边权为 2 的边一次的路径个数。我们将所有边权为 2 的边删去,得到下图。然后发现由于边的断开,这棵树分成了若干个连通块。观察发现,对于每条边权为 2 的边,它对答
2022-05-26 15:46:53 270
原创 CF1681E Labyrinth Adventures题解
分析图中矩阵被分为了 nnn 层,不难看出:同一层中任意两个位置之间的最短路都是它们的曼哈顿距离 (∣x1−x2∣+∣y1−y2∣|x_1-x_2|+|y_1-y_2|∣x1−x2∣+∣y1−y2∣)。这个距离一定是最优的。也就是说要去同一层中另一个位置,绕到别的层肯定不会更优。我们假设每次都是从较低的层走到较高的层,每次移动最多只能向上一层,结合上面结论,我们可以得出:每一次移动一定是在当前层中移动或向上一层,不可能向下走。nnn 是 10510^5105 级别的,肯定不能将图中
2022-05-26 15:37:19 263
原创 CF1680F Lenient Vertex Cover题解
#include <bits/stdc++.h>#define ll long long#define pb push_back#define pii pair<int,int>#define mp make_pair#define F first#define S second#define debug(x) cerr<<#x<<“=”<<x<<endlusing namespace std;inline int r
2022-05-15 23:38:21 405 5
原创 ABC106D Atcoder Express 2题解
可以考虑区间 dpdpl,rdp_{l,r}dpl,r 表示闭区间 [l,r][l,r][l,r] 内的区间数。根据容斥得出递推式dpl,r=dpl+1,r+dpl,r−1−dpl+1,r−1dp_{l,r}=dp_{l+1,r}+dp_{l,r-1}-dp_{l+1,r-1}dpl,r=dpl+1,r+dpl,r−1−dpl+1,r−1初始时记录在 dp 数组上记录以下所有区间,然后按 r−lr-lr−l 从小到大逐层转移。每次询问直接输出 dpl,rdp_{l,r}dpl,r
2022-05-13 20:50:22 296 1
原创 CF946G Almost Increasing Array 题解 线段树优化dp
codeforces 传送门 & 洛谷传送门Description有一个长度为 nnn 的整数序列,每次操作可以把一个元素修改为任意整数。求最少要几次操作,使得序列能满足:删除一个元素后是严格单调增的。2≤n≤2×1052\le n\le 2\times 10^52≤n≤2×1051≤ai≤1091\le a_i\le 10^91≤ai≤109Solution要求最小修改次数,我们不妨考虑求最大保留元素个数。这样其实类似于求最长上升子序列,但是因为要求严格单增且必须是整数,所
2022-05-04 11:47:23 301
原创 CF710F String Set Queries 三种解法
本蒟蒻来介绍一下三种方法吧codeforces 传送门 & 洛谷传送门Solution 1(暴力 & 哈希)第一种方法比较暴力,它的关键点在于:所有字符串的总长不超过 m=3×105m=3\times10^5m=3×105,不难想到最多有不超过 2m2\sqrt m2m 种不同的长度。大概是不超过 800 的。所以遍历子串时只需要遍历 O(m)\operatorname O(\sqrt m)O(m) 种长度的子串就行了。根据这一结论,我们可以暴力地维护 O(m)\op
2022-05-04 11:09:16 452
原创 Atcoder DP Contest V题解(换根dp)
这是树形 dp 中的换根 dp。atcoder 题目传送门 & 洛谷题目传送门Description有一个 nnn 个节点的树,对一些节点染色,使得所有被染色的节点是一个连通块。求对于 1,2,...,n1,2,...,n1,2,...,n 每个节点,该节点被染色的方案个数。所有答案对 MMM 取模。1≤n≤1051\le n\le 10^51≤n≤1052≤M≤1092\le M\le 10^92≤M≤109Solution换根 dp,我们需要考虑两个 dp 状态:
2022-04-08 10:33:58 293
原创 AGC023F Manga Market题解(贪心)
atcoder 传送门 & 洛谷传送门Step 1假设我们确定了要去哪些商店,要找完成这一方案的最小时间,那么就要确定一个最优的顺序。通常这种问题,要用一个叫 Exchange Argument 的思想确定一个贪心的标准,通过这个标准来对商店进行排序。首先我们考虑两个商店 iii 和 jjj,它们在要去的顺序中是相邻的,那么考虑交换它们会对答案造成什么影响。假设在此之前已经花费了 ttt 的时间。先去 iii 再去 jjj 花费时间:ait+bi+1+aj(t+ait+bi+1)+bj+
2022-04-08 10:31:59 170
原创 Hitachi2020D 01 on Tree 题解
很典型的一个贪心类型,这种题目通常会用一个叫做 Exchange Argument 的方法来构造正确的贪心策略。atcoder 题目传送门 & 洛谷题目传送门Description有一个 nnn 个节点的树,每个节点有权值 vi=0∨vi=1v_i=0\lor v_i=1vi=0∨vi=1 ,求这颗树上节点的一个拓扑序(保证所有节点在它祖先之后),使得所有 viv_ivi 组成的序列中逆序对数最小,输出最小逆序对个数。1≤n≤2×1051\le n\le 2\times 10^51
2022-04-07 18:53:25 135
原创 NOI Online2022 t2 讨论 题解
自己现场想的屑解法,望指点。传送门Description这种求集合交、并、包含的问题画一个 Venn 图对思考很有帮助,我现场用这种方法很快切了这道(有和我一样第一道没拿满分第二道拿满了的吗)。用这种方式,我们来转换一下问题:给若干个集合,输出两个有交集但没有包含关系的集合。像这样:Solution首先方便起见,我们对所有集合按元素个数 kkk 降序排序。这样的好处是:我们按顺序处理每个集合,之前的集合只有可能包含当前集合,而不可能被当前集合包含,一定程度地简化了问题。接着,我们
2022-04-07 18:51:41 106
原创 NOI Online 2022t1 丹钓站 题解
《论为什么现场的我想不出 O(nlogn)O(n\log n)O(nlogn) 做法只能用莫队拿 65 分这件事》传送门Step 1关于丹钓站单调栈,我们有一个很好的性质。我们先按照题目的规定将 nnn 个二元组模拟一遍入栈过程。在过程中对每一个元素 (ai,bi)(a_i,b_i)(ai,bi),记录 preipre_iprei 表示这个元素进栈时栈顶元素的下标,若栈空则记为 -1。你试几个数据后就会发现,得到所有 preipre_iprei 之后,问题瞬间变简单了。假设答案询问的区间
2022-04-07 18:48:23 181
原创 Atcoder DP Contest Y题解
这是一道比较典型的 dp 结合组合数的题目。atcoder 题目传送门 & 洛谷题目传送门Description有一个 H×WH\times WH×W 的网格,有 nnn 个障碍物,坐标分别为 (ri,ci)(r_i,c_i)(ri,ci)。求从 (1,1)(1,1)(1,1) 走到 (n,m)(n,m)(n,m),不经过障碍物的方案数。答案对 109+710^9+7109+7 取模。2≤H,W≤1052\le H,W\le 10^52≤H,W≤1051≤n≤30001\le
2022-04-07 18:46:20 186
原创 Atcoder DP Contest U题解
数据范围知状压 dp 系列。atcoder 题目传送门 & 洛谷题目传送门更好的阅读体验Description有 nnn 个兔子,要将它们分成若干组,对于每一对 1≤i,j≤n1\le i,j\le n1≤i,j≤n,如果兔子 iii 和兔子 jjj 在同一组,会获得 ai,ja_{i,j}ai,j 的分值,求能获得的最大总分值。1≤n≤161\le n\le 161≤n≤16∣ai,j∣≤109\left\vert a_{i,j}\right\vert\le 10^9∣ai,j
2022-04-07 18:43:11 163
原创 Atcoder DP Contest T题解
一道需要一定分析的 dp 题目。atcoder 题目传送门 & 洛谷题目传送门更好的阅读体验Description给定 nnn 和一个长度为 n−1n-1n−1 的字符串(由 ‘<’ 和 ‘>’ 组成),求数列 1,2,...,n1,2,...,n1,2,...,n 有多少种排列,使得相邻数之间的大小关系与字符串中大于号小于号相符合,答案对 109+710^9+7109+7 取模。1≤n≤30001\le n\le 30001≤n≤3000Solution1anal
2022-04-07 18:40:30 569
原创 Atcoder DP Contest Q题解
呦呦呦,这不是 LIS 最长上升子序列吗,几日不见,数据范围这么大了。atcoder 题目传送门。题意有 nnn 朵顺序排列的花,每朵花有高度 hih_ihi 和价值 aia_iai,高度两两不同。选取一些花使得这些花的高度依次递增,求选取花最大的总价值1≤n≤2×1051\le n\le 2\times 10^51≤n≤2×1051≤hi≤n1\le h_i\le n1≤hi≤n 且 hi≠hj,∀i≠jh_i\ne h_j,\forall i\ne jhi=hj,∀i
2022-04-07 18:37:15 838
原创 Atcoder DP Contest M题解
atcoder 题目传送门,经典的 dp + 前缀和优化。更好的阅读体验。题意有 nnn 个不同的小朋友和 kkk 个相同的糖,给每个小朋友分配若干个糖且糖要分配完,每个小朋友分配糖的上限个数为 aia_iai,求分配方案总数。1≤n≤1001\le n\le 1001≤n≤1001≤k≤1051\le k\le 10^51≤k≤1051≤ai≤k1\le a_i\le k1≤ai≤k思路朴素的 dp 状态:dp(i,j)dp(i,j)dp(i,j) 表示考虑到第
2022-04-07 18:02:44 943
原创 Atcoder DP Contest J题解
这是一道很好的期望 dp 题。atcoder 题目传送门更好的阅读体验。题意有 nnn 个盘子,每个盘子有 aia_iai 个寿司,每次等概率选择一个盘子吃掉其中一个寿司,选到空盘子不变化,求吃完所有寿司的期望步数。1≤n≤3001\le n\le 3001≤n≤3001≤ai≤31\le a_i\le 31≤ai≤3分析有同学可能没有做过期望 dp ,这道题能很好地诠释所谓 “期望步数” 的意义,加深你的理解。所谓期望值是概率与其对应答案值的积的总和。有了这个公式我们可
2022-04-07 17:57:45 220
原创 浅谈Exchange Argument贪心
这周刷了几道有关的题目,小小的写一个对Exchange Argument思想的理解和总结,欢迎大佬来吊打我。Exchange Argument(或许可以翻译为交换论证?)是一种贪心地构造最优序列的思想。通常这类题目会有sorting,greedy这类标签。它适用于在一个操作序列中,找到最优的操作顺序。通常会通过定义一个权值比较器,对所有操作按一定标准排序来完成这一过程。通常定义的权值比较器需要满足以下两个性质:传递性,即 x<y∧y<z⇒x<zx<y\land y<
2022-04-07 17:46:05 2029
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人