摘要: 题意: 给定 $n$ 个点 $m$ 条边的无向连通图,每条边标有 $0$ 或 $1$,统计无序点对 $(x,y)$ 的数量,满足 $x,y$ 之间存在一条简单路径(点不重),使得这条简单路径既经过 $0$ 边也经过 $1$ 边。 $n\leq 4\times 10^5$,$m\leq 10^6$。 阅读全文
posted @ 2022-10-28 21:18 ez_lcw 阅读(24) 评论(0) 推荐(2) 编辑
摘要: ~~这都能扯到二分图上,看来是我做题太少了。~~ 不是质数的情况有很多种,不妨考虑一下包含质数的情况。 考虑到质数只有可能是奇数+偶数构成的($2$ 除外,不过 $2$ 只能由 $1+1$ 凑成,所以我们考虑时只考虑一个 $1$,其余的 $1$ 全部不选),所以不妨将所有的数按奇偶分类,构成一个二分 阅读全文
posted @ 2022-10-28 20:47 ez_lcw 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 考虑树形 DP,假设我们已经考虑完当前子树内监听点的放置情况,根为 $u$,考虑我们要记录什么状态:$u$ 子树内的监听点向子树外还能监听多远,$u$ 子树内距离根最远的未被监听点有多远。 发现当第二个状态存在时,第一个状态是无用的,因为若 $u$ 子树内存在一个未被监听的点 $v$,设其到 $u$ 阅读全文
posted @ 2022-10-28 20:47 ez_lcw 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 显然,$y_i$ 加上 $c$ 可以看成是 $x_i$ 减去 $c$。 所以就变成了 $x_i$ 加上一个整数(可正可负)。 现将 $x$ 环拆成一个长度为 $2n$ 的序列 $a$(复制一遍),把 $y$ 环拆成一个长度为 $n$ 的序列 $b$。 那么旋转操作就可以看成是 $b$ 序列与 $a$ 阅读全文
posted @ 2022-10-28 20:47 ez_lcw 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 题意扩展版:有两个长度为 $n$ 的序列 $a,b$,你需要维护 $m$ 次操作: 对 $a$ 区间赋值。 给定 $l,r$,对于所有 $i\in[l,r]$,执行 $b_i\gets b_i+a_i$。 询问区间 $b$ 的和。 题解: UPD:可以线段树上每个点维护矩阵 $[suma,sumb, 阅读全文
posted @ 2022-10-28 20:47 ez_lcw 阅读(24) 评论(0) 推荐(3) 编辑
摘要: 题意: 给你一棵树,你要对所有节点定一个顺序序列,形如 $p_1 \oplus_1 p_2 \oplus_2 p_3\cdots p_{n-1}\oplus_{n-1} p_n$,其中 $\oplus_i$ 为 $=$ 或 $<$,$p_{1\sim n}$ 为 $1\sim n$ 的一个排列, 要 阅读全文
posted @ 2022-10-28 20:47 ez_lcw 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 这个条件给的有点诡异:对于任意的 $a_{p_j}=p_k$,都有 $k<j$。 那么对于某个 $a_x=y$,意思就是 $y$ 在 $p$ 中的位置小于 $x$ 在 $p$ 中的位置。 那么如果我们连边 $(a_x,x)$,就是要求图中没有环,是一棵树,而且父亲在 $p$ 中的位置要小于儿子在 $ 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(17) 评论(0) 推荐(1) 编辑
摘要: 线段树分裂&合并入门题。 对于每个单调段用一个权值线段树维护。一次操作相当于先对 $l,r$ 所在的单调段的权值线段树分裂,然后再合并若干棵的权值线段树。 线段树分裂和 fhq-treap 的分裂类似,只不过根到分裂成的两部分的 $lca$ 的那一段路径要复制一遍。 线段树分裂&合并的时间复杂度分析 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(36) 评论(0) 推荐(2) 编辑
摘要: 首先想一下题目中的操作如何转化: 当一个节点被去掉之后,这个节点上的樱花和它的儿子节点都被连到删掉节点的父节点上。 设当前节点为 $u$,$u$ 的父节点为 $fa$,儿子个数为 $son_u$。那么当我们把节点 $u$ 删去时,$fa$ 的樱花数会加上 $c_u$,儿子个数会加上 $son-1$( 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 先考虑没有树的限制,即我们可以任意安排顺序打怪兽,那么这就是一个全序问题。 考虑在某种顺序下,假设初始血量为 $st$,那么打到第 $i$ 个怪物时剩余的血量就是 $st+\sum\limits_{j=1}^{i-1}(b_j-a_j)$,如果设 $sum_i=\sum\limits_{j=1}^{ 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(93) 评论(0) 推荐(12) 编辑
摘要: 如果题目中只有两个国家,事情就非常简单了:假设只有国家$A$和$B$,我们先找出$A$和$B$的最近公共祖先$lca$,然后找到在路径$A\longrightarrow lca\longrightarrow B$上的中点$mid$,然后分3类讨论: 若$dis(A,mid)==dis(B,mid)$ 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(17) 评论(0) 推荐(1) 编辑
摘要: 学到了很多。 我们分步走。 首先在做这道题前先观察到几个小性质: 操作顺序不同不影响结果 发现对于每一个黑点,一通操作过后它扩展出的区域是一个矩形,而操作顺序是不影响这个矩形的大小和位置的。 最后的要求 “任意两个黑色格子八连通” 等价于 “一开始图中的黑色格子八连通”。 这是显然的,因为对于一个黑 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(23) 评论(0) 推荐(4) 编辑
摘要: 题意:称一个长度为 $n$,值域为 $[1,D]$ 整数序列为合法序列,当且仅当序列中能选出 $m$ 对数相等。问合法序列数。 $1\leq D\leq 10^5,1\leq n,m\leq 10^9$。 题解: 设 $c_i$ 表示数 $i$ 在序列中的出现次数,那么限制转化成: $$ \sum_ 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Subtask 1:$55pts$ $n\leq 2000$。 ~~这就变成了一道模拟题了呀。~~ 对于每一轮,先假设最大的吃了最小的,然后往下递归每一轮,并设置数组 $alive$,维护这之后会有哪些蛇活着。在回溯的时候,如果最大蛇的发现它自己被吃了,就撤销吃这个动作,并重新更新 $alive$ 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(75) 评论(0) 推荐(1) 编辑
摘要: 题意:给你一棵 $n$ 个点的树,从根节点开始走 $m$ 步,最多能遍历多少个节点。 题解: 考虑我们走的路径,设起点是 $S$,终点是 $T$,那么我们肯定是走的类似这么一条路径: 设 $S\to T$ 这条链的长为 $l$,那么我们在子树中走了 $m-l$ 步,子树中恰好会走 $\frac{m- 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 题意: 有一个无限大的整数表格 $f$ 满足以下两条法则: $f(a,b)=f(b,a)$。 $b\times f(a,a+b)=(a+b)\times f(a,b)$。 初始时 $f(a,b)=a\times b$。有 $m$ 次修改,每次修改会改变某个位置,并将所有此次修改会影响到的所有位置按照 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 暴力做法就不会做…… 考虑容斥,用所有数 $\leq a_i$ 的方案减去所有数 $<a_i$ 的方案得到最大值为 $a_i$ 的方案,$b_i$ 同理容斥,时间复杂度 $O(2^{n+m}nm)$。 直接在容斥上优化是没有前途的,考虑换一种思路。 发现我们交换两行或交换两列并不影响答案,那我们不妨 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(20) 评论(0) 推荐(2) 编辑
摘要: 题意: 有一个序列 $a_1,\cdots,a_n$,初始时它们全为 $1$。进行 $d$ 轮操作:每轮操作以正比于 $a$ 的概率选择一个 $a_i$ 加 $1$。求最后 $a_1,\cdots,a_n$ 中前 $r$ 大的和的期望,精度要求 $10^{-6}$。 $n,d,r\leq 500$。 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(14) 评论(0) 推荐(1) 编辑
摘要: 首先可以钦定每次只删当前点的出边。 然后可以注意到,在最优策略下,我们肯定不会走回重复的点:否则意味着出现了一个环,那么我们还是需要将这个环上的某条边删掉(否则最坏情况就是绕着环一直走),那么不如第一次走到的时候就删掉。 这意味着,我们删除某条边不会带来后效性,换言之最优策略中我只关心当前点在哪,并 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 首先容易知道 $b$ 序列在 $a$ 中的顺序肯定是从小到大排序的,否则交换 $b$ 中逆序的肯定会更优。 接下来是一个很鬼的结论。 设 $p_i$ 表示考虑仅将 $b_i$ 插入 $a$ 序列中,最优位置是插在 $a_{p_i-1}$ 与 $a_{p_i}$ 之间,注意对于同一个 $i$,$p_i 阅读全文
posted @ 2022-10-28 20:39 ez_lcw 阅读(3) 评论(0) 推荐(0) 编辑