题解at_arc 067 arc
P3133题解
题意简述 给定两个点(即 FJ 和 Bessie)和两条路径,让这两个点沿着路径移动,求每移动一次的能量总和。 思维路径 典型的动态规划题,我们设计状态,设 \(f_{i,j}\) 表示 FJ 走到第 \(i\) 个点,Bessie 走到第 \(j\) 个点最少的能量总和。 因为他们两个都可以在某一 ......
P6591 题解
题意简述 给出一棵无根树,求以那些节点为根时,与它直接相连的节点,它们的子树大小都相同。 思维路径 首先,显而易见的是,在 \(1 \le n \le 10^6\) 的数据范围下,我们不可能通过对每个节点作为根判断一次。因此,我们考虑选取一个节点为根计算全部。 我们作图来分析一下。 如上图,我们针对 ......
CF1146B 题解
题目简述 给定一个字符串 \(t\),由一个字符串 \(s\) 和这个字符串去掉所有 a 组成。求字符串 \(s\)。 思路 首先我们分析给定的字符串 \(t\),它由 \(s\) 和 \(s\) 去掉所有 a 形成的字符串 \(s'\) 组成。那么当整个字符串 \(t\) 去掉 a 后,就得到了 ......
CF1068A 题解
其实很简单的一道题。 思维路径 其实题目主要要考虑的就是以下三个条件。 每个人都要送一样多的硬币。 每个硬币都必须是不同的。 所有人送的硬币至少有 \(L\) 个是 Ivan 没有的。 我们一个一个来看。 每个人都要送一样多的硬币。 一共有 \(M\) 个朋友,所以说总共送的硬币的个数为 \(M\) ......
CF940F Machine Learning题解
题目链接:洛谷 或者 CF 不是特别难的题,抽象下题意就是算区间次数出现的次数 mex 和带单点修改。看到范围 \(1e5\) 还带修改,传统的 mex 求法里貌似就莫队类算法好带修,考虑带修莫队。 然而涉及到 mex 问题,你可能不由自主地想到回滚莫队求 mex 只删不加的板子题:P4137 Rm ......
CF940FMachine Learning题解
题目链接:洛谷 或者 CF 不是特别难的题,抽象下题意就是算区间次数出现的次数 mex 和带单点修改。看到范围 \(1e5\) 还带修改,传统的 mex 求法里貌似就莫队类算法好带修,考虑带修莫队。 然而涉及到 mex 问题,你可能不由自主地想到回滚莫队求 mex 只删不加的板子题:P4137 Rm ......
LOJ2294 银河英雄传说 题解
Question LOJ2294 银河英雄传说 Solution 算是带权并查集一个比较典的题目了 定义 \(d[x]\) 表示战舰 \(x\) 与 \(fa[x]\) 之间边的权值,在路径压缩把 \(x\) 的 \(fa[x]\) 修改为根节点时,把 \(d[x]\) 更新成从 \(x\) 到树根 ......
CF1665E MinimizOR 题解
CF1665E 直接做不是很好下手,考虑找些性质。 有一个比较显然的贪心,就是按位从高到低的考虑,如果当前位至少有 \(2\) 个 \(0\),就可以去掉该位为 \(1\) 的数。但是时间上显然是不行的。 假如没有重复的数,可以发现扫到最后一位时,剩下的数的数量是 \(\log V\) 的,证明省去 ......
P8512 [Ynoi Easy Round 2021] TEST_152 题解
P8512 直接做不好做,考虑离线。这个覆盖操作和这道题很像,可以直接对某些段暴力修改,可以直接上 ODT。发现当 ODT 执行这些操作时,是容易求出不执行某些操作后带来的值的影响的,即可以直接用树状数组维护每个位置现在是被那个操作覆盖,求出 \(1\) 到 \(x\) 操作还覆盖了那些位置,以及这 ......
CF1870F Lazy Numbers 题解
CF1870F 题意:给一个长度为 \(n\) 的排列,求在其在 \(k\) 进制下按字典序排序后 \(\sum[p_i=i]\) 的值(\(n\le10^{18}\))。 直接做是不好办的,只能在一些数中找到 \(p_i\) 的大小关系。 在手摸的过程中会发现一些长度相等的数之间会插入一些其它长度 ......
P4700 [CEOI2011] Traffic 题解
P4700 简单的,但是考试的时候没看到是平面图,就只想到了缩点后 DAG 判断能到达哪些点。用 bitset 维护做到 \(\mathcal{O}(\frac{nm}{w})\) 的时空复杂度,但是空间会炸。 由于这个图是平面图,稍微推一下就可以知道所有能它最终所能到达的点一定是从西侧出发所能到达 ......
P4657 [CEOI2017] Chase 题解
P4657 树形 dp。 首先,追逐者遇到的铁球的数量显然不会少于逃亡者遇到的铁球数量。 令 \(ss_i\) 表示与 \(i\) 相邻的点的权值之和。\(\mathcal{O}(n^2v)\) 的 dp 是很简单的。 令 \(dp_{i,j,0/1}\) 表示根节点到 \(i\) 的路径上,用了 ......
P9715 「QFOI R1」头 题解
P9715 不一样的线段树做法。 假如只有 \(t=1\) 的操作是容易的。考虑加上 \(t=0\) 后怎么做。显然地,我们对每一个操作附上一个时间 \(tim\),不妨令 \(tim\) 小的数能覆盖掉 \(tim\) 大的数。这时候就只需要维护区间取 min 和最后的 \(n\) 次求 \(c\ ......
P8386 [PA2021] Od deski do deski 题解
P8386 platelett 讲的题欸。 先考虑给定序列怎么做。 问题显然可以转化为能否将序列分成若干个子序列。令 \(f_i\) 表示前 \(i\) 个数是否能够删完。则有 \(f_i = f_j[a_i=a_j, f_j=1]\)。这样是 \(n^2\) 的,也无法扩展至所有数列的情况。 建立 ......
P4067 [SDOI2016] 储能表 题解
P4067 因为不能直接减去 \(nmk\),先把题目中的式子转化为求 \(i\oplus j \ge k\) 的数的个数与和。 这样就可以进行数位 dp 了。令 \(f_{bt,un,um,lk}\) 表示当前考虑到第 \(bit\) 位,\(n\) 有没有达到上界,\(m\) 有没有达到上界,\ ......
UVA12170 轻松爬山 Easy Climb 题解
UVA12170 7 月份的题了,补一补。场上写挂了一点还是很遗憾的。 容易想到 dp。 但是由于值域非常大,直接 dp 是不行的。但是 \(n\) 非常小,容易想到离散化。 但是离散化后是不能直接加减的。有用的数值初看是有 \(\mathcal{O}(n^2d)\) 的,即 \(h_i + kd( ......
P9755 [CSP-S 2023] 种树 题解
P9755 upd on 2023.11.20:增加细节说明。 刚开始浪费太多时间了,导致赛时没调出来,有点火大。 如果一开始没有头绪的话可以先看一下特殊性质,链是直接贪心。 考虑一下菊花,发现直接贪心是不可做的,但是发现树的高度随时间增大而增大,可以用二分转化为判定性问题解决。 对于任意的树来说, ......
P9753 [CSP-S 2023] 消消乐 题解
P9753 法一: 这是赛时想法。 考虑 dp。 令 \(f_i\) 表示 \(i\) 为右端点的合法子串个数,则答案为 \(\sum\limits_{i=1}^{n}f_i\)。 赛时想过匹配指针不断跳的,但当时没敢写,用了一种更直观的方法。 仿照于括号序列,合法的子串只能为 \(cAc\) 或 ......
P8315 [COCI2021-2022#4] Šarenlist 题解
P8315 T3 写太慢了,就没看这道/gg。错过简单题+1。 不好直接对边或路径进行考虑,但是发现 \(m\) 非常小,考虑容斥。 即每次钦定集合 \(S\),强制包含在 \(S\) 内的路径不合法,其它的都可以,容斥系数就是 \(-1^{|S|}\)。每次可以暴力覆盖染色,然后用一个并查集进行维 ......
P9340 [JOISC 2023 Day3] Tourism 题解
P9340 记一下。称 \(\forall j\in[l,r]\) 的 \(c_j\) 为关键点。 法一: 最好想的。 有个显然的结论,将所有关键点按 DFS 序排序,走过的边的数量为排序后相邻的点之间的距离。记走过的边的数量为 \(cnt_e\),则此时这些关键点所构成的虚树的大小为 \(\fra ......
P7816/CF1610F「Stoi2029」以父之名 题解
CF1610F P7816 *3000 令 \(w_u\) 表示与 \(u\) 直接相连的边的权值和。显然当 \(2\mid w_u\) 时,这个节点是无法满足条件的,因为每次调整只能对 \(\mid d^+(u)-d^-(u)\mid\) 的值造成偶数的影响。 这时候肯定会猜答案就是 \(\sum ......
1 月杂题题解
好久没写博客了? 今晚写爽。 P5311 成都七中 这有黑? 对于一个点 \(x\),设其子树任意一点为 \(y\)。 我们可以求出这 \(x\rightarrow y\) 这条路径经过节点的的 \(l,r\)。 遍历 \(x\) 的子树,我们可以得到一些三元组 \((l,r,c)\) 表示 \(x ......
[ABC273D] LRUD Instructions 题解
[ABC273D] LRUD Instructions 题解 很好的一道大模拟,使我爆 \(0\)。 思路解析 大模拟,我们只需要用一个 \(x,y\) 表示我们当前的位置,而对于每一个移动,我们就判断在当前移动方向上离当前点最近的点,若该点在当前行进路线上,则把当前位置设为该点前面的一个。 其中判 ......
CF1045G AI robots题解
题目链接:洛谷 或者 CF 本题考虑转化为 cdq 分治模型 对于 cdq 分治来说,只需要考虑左边对右边的影响,那我们要考虑该怎样设置第一维度的左右对象。很显而易见的是抛开 \(q\) 限制而言,我们着眼于,如何让双方互相看到的严格条件转化为只需要关注单体看见。考虑什么情况下只需要一方看到对方,对 ......
P8575 「DTOI-2」星之河 题解
题目链接:星之河 比较经典的偏序问题。区别于强制在线类算法:树套树之类的,对于偏序问题,我们有许多种优秀的离线算法,比如此篇要讲的 cdq 分治。 它更偏向于一种思想,它的思想使得它对偏序类问题,往往都有一种非常好的效果。首先来看一张图。 这是所有算法入门选手都会接触的归并排序的过程图。我们考虑两个 ......
[ARC150F] Constant Sum Subsequence
更好的阅读体验 [ARC150F] Constant Sum Subsequence 很有意思的题。 设 \(nex_{i,j}\) 表示位置 \(i\) 后面的最小的满足 \(k>i\wedge a_k=j\) 的 \(k\),则问题可以抽象为: \[f_i=\max_{j=1}^inex_{f_ ......
ARC134C The Majority
ARC134C The Majority link:【ARC134C】 The Majority 小清新数学题。(反正我做不出来) 简要题意 有\(K\)个箱子,编号为\(1\)到\(K\)的箱子。起初,所有箱子都是空的。 史努克有一些球,球上写着\(1\)到\(N\)的整数。在这些球中,有\(a_ ......
[ABC268E] Chinese Restaurant (Three-Star Version) 题解
[ABC268E] Chinese Restaurant (Three-Star Version) 题解 思路 hzl大佬的神仙思路。 考虑菜对轮数做贡献,可以发现一定是形如 \(0,1,2,...n/2,...0,..\) 之中的一段,研究 \(0,1,2...,n/2,...,0\),可以通过二 ......
P9247 [集训队互测 2018] 完美的队列题解
题目链接:[集训队互测 2018] 完美的队列 神仙数据结构题,看了很多题解才搞懂。在做此题之前,最好对分块很熟悉,对各类标记非常熟练。考虑题意说的种类是相对于全局的。我们可以考虑局部影响对全局影响。 人为规定:在第 \(m+1\) 时刻,无论队列中还有无元素,我们都把所有队列清空,便于后续的描述 ......
百度之星2023决赛简要题解
A 找矩阵 #include<bits/stdc++.h> #define I using #define love namespace #define Elaina std I love Elaina; const int N=3010; int read(){ int x=0,f=1; char ......