<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LightningUZ的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LightningUZ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LightningUZ]]></copyright><item><title><![CDATA[【博弈论】SG(Sprague–Grundy)定理证明和Nim游戏正确性证明]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/126147578</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/126147578</guid><author>LightningUZ</author><pubDate>Wed, 03 Aug 2022 19:43:21 +0800</pubDate><description><![CDATA[SG定理证明，和Nim游戏的正确性证明]]></description><category></category></item><item><title><![CDATA[Codeforces 1231E Middle-Out 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105894755</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105894755</guid><author>LightningUZ</author><pubDate>Sat, 02 May 2020 21:20:43 +0800</pubDate><description><![CDATA[博客观赏效果更佳：
github
cnblogs
题意简述
（qqq 组数据）你有两个串，sss 和 ttt，长度都是 nnn。现在你可以对 sss 做若干次操作：选择某一个字符，把它移到最前面或者最后面（二选一）。
你现在要把 sss 变成 ttt，请问最少需要多少步操作。不行输出 −1-1−1。
1≤q,n≤1001\le q,n\le1001≤q,n≤100。
思路
先放结论：求出最长的串 ...]]></description><category></category></item><item><title><![CDATA[cdq分治 笔记]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105893627</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105893627</guid><author>LightningUZ</author><pubDate>Sat, 02 May 2020 18:27:23 +0800</pubDate><description><![CDATA[博客观赏效果更佳：
github
cnblogs
算法讲解
这个算法用于解决三维偏序问题。
三维偏序：给定 nnn 个三元组： (ai,bi,ci)(a_i,b_i,c_i)(ai​,bi​,ci​)，求同时满足满足 ai≤aj,bi≤bj,ci≤cja_i\le a_j,b_i\le b_j,c_i\le c_jai​≤aj​,bi​≤bj​,ci​≤cj​ 的 (i,j)(i,j)(i,j) ...]]></description><category></category></item><item><title><![CDATA[线段树优化建图 笔记]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105623838</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105623838</guid><author>LightningUZ</author><pubDate>Sun, 19 Apr 2020 22:28:13 +0800</pubDate><description><![CDATA[博客观赏效果更佳
github
cnblogs
算法讲解
其实不用讲，看标题就知道这大概是一个什么样的算法了。
它用来解决这样类型的问题：你要支持，从一个点往一个区间中的所有点连一条边，或者一个区间中的所有点连一条边（有向）。
然后你就要进行一些 最短路/强连通分量/最大流 等图论基本操作了。
那么这个咋整呢（⊙.⊙）
假设我们现在是从第 ⑨ 个点向 [3,6][3,6][3,6] 区间中的所有点...]]></description><category></category></item><item><title><![CDATA[bzoj 4962 简单的字符串 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105621730</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105621730</guid><author>LightningUZ</author><pubDate>Sun, 19 Apr 2020 20:50:25 +0800</pubDate><description><![CDATA[博客观赏效果更佳
github
cnblogs
题意简述
给你一个长度为 nnn 的数组 aaa，问你有多少个区间，满足：

长度为偶数
前一半和后一半循环同构

n≤5000,ai≤5000n\le 5000,a_i\le 5000n≤5000,ai​≤5000
思路
两个串 a,ba,ba,b 循环同构 ，那么一定可以把 aaa 分成两个串 u,vu,vu,v 接起来，然后把 bbb 表示成 ...]]></description><category></category></item><item><title><![CDATA[libreoj 6192 「美团 CodeM 复赛」城市网络 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105609309</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105609309</guid><author>LightningUZ</author><pubDate>Sun, 19 Apr 2020 02:46:15 +0800</pubDate><description><![CDATA[博客观赏效果更佳
github
cnblogs
题意简述
有 nnn 个城市，组成一张树形网络。第 iii 个城市售卖价值为 aia_iai​ 的珠宝。zps 的父母计划了 qqq 次行程。每次先带上价值为 ccc 的珠宝，从城市 uuu 走到城市 vvv （保证 vvv 在 uuu 到 111 的路径上）。如果当前的城市售卖的珠宝比手头的贵（严格大于，等于不行），那么 zps 的父母会买入这个珠...]]></description><category></category></item><item><title><![CDATA[莫比乌斯容斥 笔记]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105606828</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105606828</guid><author>LightningUZ</author><pubDate>Sat, 18 Apr 2020 22:43:16 +0800</pubDate><description><![CDATA[博客观赏效果更佳：
cnblogs
github
算法讲解
（本篇文章假设您学过莫比乌斯反演 (〃‘▽’〃)
我们知道莫比乌斯函数有一个性质： ∑d∣nμ(d)=[n=1]\sum\limits_{d|n} \mu(d)=[n=1]d∣n∑​μ(d)=[n=1]
根据这条性质，我们写出一个类似筛的东西：一个数组，初始都是 000。 第 iii 轮，将 iii 的倍数都加上 μ(i)\mu(i)μ(...]]></description><category></category></item><item><title><![CDATA[洛谷 4247 bzoj 2962 [清华集训2012]序列操作]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105460259</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105460259</guid><author>LightningUZ</author><pubDate>Sat, 11 Apr 2020 21:46:10 +0800</pubDate><description><![CDATA[博客观赏效果更佳：
cnblogs
github
题意简述
给一个长度为 nnn 的序列 aaa，支持 qqq 个操作：
I l r x 区间元素整体 +x+x+x。
R l r  区间元素整体 ×(−1)\times (-1)×(−1)
Q l r x 询问：从 [l,r][l,r][l,r] 中选择 xxx 个数的积的所有方案的和， mod 19940417\bmod 19940417mod1...]]></description><category></category></item><item><title><![CDATA[洛谷 4492 [HAOI2018] 苹果树 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105458856</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105458856</guid><author>LightningUZ</author><pubDate>Sat, 11 Apr 2020 20:26:25 +0800</pubDate><description><![CDATA[博客观赏效果更佳：
github
cnblogs
先膜一发 shadowice1984的题解，太神了！
题意简述
你有一个 nnn，表示你的二叉树将要有 nnn 个节点。然后每次你的树会等概率选择某个点的还没长过的儿子，在这里长一个儿子。容易证明，这样有 n!n!n! 种方案。
（第一次有一种方案，第二次两种，第三次三种…一共就是 n!n!n! 种）
然后你要输出树上路径和的期望值乘以 n!n!n...]]></description><category></category></item><item><title><![CDATA[洛谷 5295 [北京省选集训2019]图的难题 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105458343</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105458343</guid><author>LightningUZ</author><pubDate>Sat, 11 Apr 2020 19:54:05 +0800</pubDate><description><![CDATA[博客观赏效果更佳：
github
cnblogs
题意简述
给你一个 nnn 个点 mmm 条边的无向图，判断是否能将一些边染色为白色，其它的染成黑色，并且没有一个纯色的环。
n≤501,m≤2nn\le 501,m\le 2nn≤501,m≤2n
思路
一张图有 EEE 条边，VVV 个点。那么，它要满足没有纯色的环，EEE 最大值为 2(V−1)2(V-1)2(V−1)（此时的情况就是白色和黑...]]></description><category></category></item><item><title><![CDATA[洛谷 5112 FZOUTSY 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105457146</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105457146</guid><author>LightningUZ</author><pubDate>Sat, 11 Apr 2020 18:19:39 +0800</pubDate><description><![CDATA[哈希处理往后 k 个子串，莫队即可]]></description><category></category></item><item><title><![CDATA[libreoj 6270 数据结构板子题 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105339828</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105339828</guid><author>LightningUZ</author><pubDate>Mon, 06 Apr 2020 11:35:58 +0800</pubDate><description><![CDATA[博客观赏效果更佳
题意简述
给定 nnn 个区间 [li,ri][l_i,r_i][li​,ri​]，和 QQQ 个询问，每次给你三个整数 [l,r,k][l,r,k][l,r,k]，求被 [l,r][l,r][l,r] 完全包含且长度 ≥k\ge k≥k 的区间数量。
注：定义一个区间  [l,r][l,r][l,r] 的长度是 r−lr-lr−l。
n,q≤106n,q\le 10^6n,q≤...]]></description><category></category></item><item><title><![CDATA[bzoj 5102 [POI2018]Prawnicy 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105339357</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105339357</guid><author>LightningUZ</author><pubDate>Mon, 06 Apr 2020 10:27:38 +0800</pubDate><description><![CDATA[博客观赏效果更佳
题意简述
给你 nnn 个区间 [li,ri][l_i,r_i][li​,ri​]，选出 恰好 kkk 个，使得交集最大。输出最长的长度和方案。
注：区间 [l,r][l,r][l,r] 的长度被定义为 r−lr-lr−l。
1≤k≤n≤1051\le k\le n\le 10^51≤k≤n≤105。
思路框架
若干的区间的交集，显然，左端点是所有左端点的最大值，右端点是所有右端...]]></description><category></category></item><item><title><![CDATA[扩展卢卡斯定理 笔记]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105137904</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105137904</guid><author>LightningUZ</author><pubDate>Fri, 27 Mar 2020 11:50:59 +0800</pubDate><description><![CDATA[博客观赏效果更佳
先问一个简单的问题，求：
Cnm(modq)
C_{n}^{m}\pmod {q}
Cnm​(modq)
不保证 qqq 是质数。1≤q≤106,1≤m≤n≤10181\le q\le 10^6,1\le m\le n\le 10^{18}1≤q≤106,1≤m≤n≤1018。
（原题：洛谷上的板子）
这很毒瘤了！我们平常熟知的几个方法，预处理阶乘和阶乘逆元，或者是 Lucas ...]]></description><category></category></item><item><title><![CDATA[libreoj 10051「一本通 2.3 例 3」Nikitosh 和异或]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105129587</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105129587</guid><author>LightningUZ</author><pubDate>Thu, 26 Mar 2020 22:11:25 +0800</pubDate><description><![CDATA[博客观赏效果更佳
题意简述
给一个长度为 nnn 的序列 a1,a2...ana_1,a_2...a_na1​,a2​...an​，求两个区间 [l1,r1],[l2,r2][l_1,r_1],[l_2,r_2][l1​,r1​],[l2​,r2​]，使得两端区间不相交，且两端区间的异或和加起来最大。
n≤105n\le 10^5n≤105，每个 ai≤109a_i\le 10^9ai​≤109。...]]></description><category></category></item><item><title><![CDATA[主席树 笔记]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105085932</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105085932</guid><author>LightningUZ</author><pubDate>Wed, 25 Mar 2020 00:58:34 +0800</pubDate><description><![CDATA[看起来需要建 n 颗线段树，但是实际上每次修改只改了 log 条链！快用「 可持久化」 把空间优化成 nlogn！让我们灵活运用 n 颗线段树，解决各种各样的问题吧！]]></description><category></category></item><item><title><![CDATA[洛谷 3831 [SHOI2012]回家的路 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105020064</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105020064</guid><author>LightningUZ</author><pubDate>Sat, 21 Mar 2020 23:35:56 +0800</pubDate><description><![CDATA[博客观赏效果更佳
题意简述
nnn 行 nnn 列的矩阵上，只有 mmm 个“关键点”处（在第 xxx 行 yyy 列）才能拐弯。从格子到上下左右四个相邻格子花费 222，转弯花费 111。 求从某个位置走到另一个位置的最小花费。无解输出 −1-1−1。
思路
新建两个点 SSS 和 TTT 表示起点。 然后把所有点 AAA（包括关键点和 S,TS,TS,T） 拆成两个点 A1A_1A1​ 和 A...]]></description><category></category></item><item><title><![CDATA[libreoj 10067 「一本通 3.1 练习 2」构造完全图 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/105019741</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/105019741</guid><author>LightningUZ</author><pubDate>Sat, 21 Mar 2020 23:22:16 +0800</pubDate><description><![CDATA[博客观赏效果更佳
题意简述
给定一个树 TTT ，求一个完全图 GGG 使得 TTT 是 GGG 的最小生成树，并且 GGG 的边权和最小。求出这个最小的边权和。TTT 的点数 n≤105n\le 10^5n≤105，每个边权 w≤105w\le 10^5w≤105
思路
我们把 TTT 中的边权排一下序，反向推一下 Kruskal 算法的步骤。
我们每次考虑到第 iii 条边 (u,v,w)(u...]]></description><category></category></item><item><title><![CDATA[洛谷 1117 libreoj 2083 优秀的拆分 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/104932083</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/104932083</guid><author>LightningUZ</author><pubDate>Tue, 17 Mar 2020 21:45:28 +0800</pubDate><description><![CDATA[博客观赏效果更佳
题意简述
一个字符串是“优秀”的，定义为：存在两个非空的字符串 A,BA,BA,B，满足这个字符串 S=AABBS=AABBS=AABB，那么这个 SSS 就是优秀的。
给定一个串，计算它有多少子串是“优秀”的。相同的子串出现在不同的位置也被算两次。
长度 ≤3e4\le 3e4≤3e4
思路
对于每个位置，我们维护 pre[i]pre[i]pre[i] 表示以 iii 结尾的 ...]]></description><category></category></item><item><title><![CDATA[Codeforces 1235E Ehab's REAL Number Theory Problem 题解]]></title><link>https://blog.youkuaiyun.com/LightningUZ/article/details/104931092</link><guid>https://blog.youkuaiyun.com/LightningUZ/article/details/104931092</guid><author>LightningUZ</author><pubDate>Tue, 17 Mar 2020 21:08:30 +0800</pubDate><description><![CDATA[博客观赏效果更佳
考场上想出了思路，但是没能写出来代码，实在可惜
题意简述
有 n≤1e5n\le 1e5n≤1e5 个正整数，每个数值域都是 [1,106][1,10^6][1,106]，并且最多有 777 个因数。 请你求出最少选多少个数能使得乘积是平方数。
思路
最多 777 个因数 ↔\leftrightarrow↔ 最多两个质因数
而且对于一个质因数，显然我们还可以把它的指数膜个 222...]]></description><category></category></item></channel></rss>