随笔分类 - 题解
摘要:##传送门 ##解题思路 比较巧的一道题。 把$y−x=z−y$化简一下得$x+z=2y$,这要求x和z一定要同为奇数或偶数。 所以很明显我们首先要对他们分类: 按照奇数偶数点 按照颜色 这样就化成了若干个集合,而我们需要快速求出每个集合对答案的贡献。 把数学式子列一下: \(\sum_{i=1}^
阅读全文
摘要:##传送门 ##解题思路 仔细阅读题目,发现按照顺序插入每一个节点,且按照二叉搜索树的规则。 于是满足这两个条件其实就是笛卡尔树。 但是注意这里的x是读入的数,y是读入的数的下标。 构建完笛卡尔树后,其先序遍历的x值就是最终的ans。 (按照样例画个图就很显然了) ##AC代码 #include<i
阅读全文
摘要:##传送门 ##前置知识 单调栈 ##笛卡尔树 ###定义 每个节点都由一个键值二元组构成(x,y)。 要求构建一棵树,满足: x上是一个二叉搜索树(左儿子<根<右儿子) y上是一个小根堆 ###构建过程 于是我们可以按照x值从小到大将节点加入笛卡尔树中。 新加入的点now一定要放在某个节点的右儿子
阅读全文
摘要:##传送门 ##解题思路 发现某谷有单调栈板子了,就在这里贴一份代码吧。 单调栈讲解 ##AC代码 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<alg
阅读全文
摘要:##CF传送门 ##洛谷传送门 ##解题思路 注意每个叶子节点的修改是独立的,不会对后面造成影响。 所以我们先从根遍历一边,O(n)求出不改变之前根节点的取值。 然后再从根遍历一遍,求出每个儿子变化会不会对根节点造成影响: AND:若另一个儿子是0,则无影响,否则有影响 OR:若另一个儿子是1,则无
阅读全文
摘要:##CF传送门 ##洛谷传送门 ##解题思路 考虑什么情况数字 \(i\) 会出现在所有连续子数列的 \(mex\) 值中: 当且仅当两个 \(i\) 之间包含了 \(1\to (i-1)\) 的全部数字。 假设我们已经判断出两个 \(i\) 之间包含了 \(1\to (i-1)\) 的全部数字,这
阅读全文
摘要:##传送门 ##解题思路 令 \(dp[i][j]\) 表示从 \(1\) 号点到 \(i\) 号点的长度比最短路多 \(j\) 的路径的条数。 则答案为: \(ans=\sum_{i=0}^{k}dp[n][i]\) 从 \(n\) 开始在反图上进行转移,转移方程为: \(dp[u][k]=\su
阅读全文
摘要:##传送门 ##解题思路 在 \(O(n)\) 内求出 \(n\) 个数的逆元: 令 \(S=\sum_{i=1}^{n}a[i]\), 则 \(a[i]^{-1}=\frac{S/a[i]}{S}=S_1[i-1]*S_2[n-i]*S^{-1}\)。 其中 \(S_1\) 为 \(a[i]\)
阅读全文
摘要:##传送门 不得不说这题细节很恶心。 ##解题思路 二分最小时间x: 首先很显然的贪心是,每个节点的军队在时间x内一定要尽可能向上走,并且如果某个子树如果去支援别的子树,一定到的是子树的根节点(即根的儿子)。 所以我们可以用倍增判断在时间x内每个军队能到达的位置,把能到达根节点的并且还有剩余时间的拿
阅读全文
摘要:##传送门 比较综合的一道题。 ##解题思路 求把一条边变为0后这m条路径中的最短值,最大值最小,可以二分求解。 如何check某个答案x是否合法? 实质就是判断能否找到一条边,使得大于x的路径都经过这条边,并且减去这条边边权后路径长度都小于等于x。 于是我们先预处理出要求的路径的原长度(倍增求LC
阅读全文
摘要:##传送门 ##解题思路 我才不是因为题目变蓝题了才做的呢 看一眼数据范围,普通期望dp(dp[n][m])比较容易想,但是只有卑微的25分。 发现 \(n\leq10^{14}\),所以我们可以大胆推测做法只与m有关。 于是我们就从m入手思考这道问题。 设 \(f(n,m)\) 表示杀死n个带护盾
阅读全文
摘要:##传送门 ##nim博弈 很典型的一种博弈。 我们考虑每堆石子的异或和。 若异或和为0,则必败,若非零,则必胜。 因为我们每一步都可以从一个异或和非零的状态转移到异或和为0的状态。 而最终每堆都是零时,异或和恰好为0(必败)。 如何证明? 考虑异或的性质,把数量最多的那一堆石子 \(k\) 单独拿
阅读全文
摘要:##传送门 ##解题思路 很妙的一道题。 首先若是选项数都相同,则同等于lc的随机写答案。 所以影响答案的就是前后的选项数。 分情况讨论: 若 \(a[i]==a[i+1]\),则 \(ans+=\frac{1}{a[i]}\) 若 \(a[i]> a[i+1]\),则选择的选项在 \(a[i+1]
阅读全文
摘要:##传送门 ##解题思路 设置状态(x--你在这里--y)表示所处的点两边的边权分别为x和y 考虑终止状态(0--你在这里--0)能由什么状态转移过来: (k--你在这里--x 0)经过边x并把边x的边权设置为0 -->必胜 (貌似就一种) 很显然每次都会选择使经过的边权为0(否则先手等于把先手权交
阅读全文
摘要:##传送门 ##解题思路 首先答案很显然: \(ans=\sum_{i=1}^{n}(p[i]\times to[i])\) 其中 \(p[i]\) 表示到点 \(i\) 的概率,\(to[i]\) 表示 \(i\) 的出边的边权和。 \(to[i]\) 可以预处理得到,而 \(p[i]\) 可以在
阅读全文
摘要:##传送门 ##拓展中国剩余定理EXCRT 早知道有这东西就不学CRT了呜呜呜~~(ljCRT)~~ 这个比CRT范围更广更快更好写…… 虽然我写挂了,并且调了两天四五个小时 还是这一堆式子: $$\begin x\equiv b_1\pmod \ x\equiv b_2\pmod \ x\equi
阅读全文
摘要:传送门 中国剩余定理(CRT) 我的第一反应是小学奥数题——韩信点兵。 转化成数学语言,就是给你 \(n\) 个关于 \(x\) 的同余方程(保证 \(a_i\) 互质),求最小整数解。 $$\begin x\equiv b_1\pmod \ x\equiv b_2\pmod \ x\equiv b
阅读全文
摘要:##传送门 ##解题思路 其实很简单,先考虑什么时候无解: 当分母b是模数p的倍数时。 当b不是p的倍数时,又因为p是个大质数,所以可以直接费马小定理求逆元。 但是a和b很大,所以我们可以先把a和b取模,然后求a乘上b的逆元就行了。 \(ans=a\times b^{-1}\pmod p\) 高精度
阅读全文
摘要:##传送门 ##解题思路 ####裴蜀定理 首先第一个字读\(p\acute{e}i\) 对于一个方程$ax+by=c$ 有整数解的条件是$\gcd(a,b)|c$ 证明如下: \(\because\gcd(a,b)|a\quad\gcd(a,b)|b\) \(\therefore\gcd(a,b)
阅读全文
摘要:##传送门 ##解题思路 板子没啥好讲的。 就是要注意以下几点: 进位时条件是 \(\geqslant10\) 而不是 \(>10\) 。 string中的某个位置若没有初始化,会炸,所以要在读入的字符串最后加上0。 ##AC代码 #include<iostream> #include<cstdio
阅读全文

浙公网安备 33010602011771号