<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Demon_Rieman的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Demon_Rieman</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Demon_Rieman]]></copyright><item><title><![CDATA[AGC027 E  ABBreviate]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90300879</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90300879</guid><author>Demon_Rieman</author><pubDate>Fri, 17 May 2019 21:33:18 +0800</pubDate><description><![CDATA[Solution
将’a’看成111，’b‘看成222。那么无论怎么变化，总和对于333的余数不变。
同时我们可以得到一个结论，对于一段[l,r][l , r][l,r]，如果最后这一段变成了某个字母，那么一定满足：

总和膜333相等。
至少有一对连续相等或者长度为一。

那么有了这个结论，考虑如何计算。对于一个ttt。首先其模333余数与sss相同。我们每次一位一位匹配。每次贪心的向后找，直到...]]></description><category></category></item><item><title><![CDATA[Loj 6088 可持久化最长不降子序列]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90300614</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90300614</guid><author>Demon_Rieman</author><pubDate>Fri, 17 May 2019 21:12:28 +0800</pubDate><description><![CDATA[Solution
其实标题什么的都只是吓人的。考虑用二分法求不下降子序列的方法。是不是每次找到一个比vvv大的数，然后将这个数换成vvv。然后操作实际上是一个栈，你只需记录一下每一步你干了什么，然后撤销即可。
骗访问量的博客，没有代码。

...]]></description><category></category></item><item><title><![CDATA[AGC028E High Elements]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90267129</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90267129</guid><author>Demon_Rieman</author><pubDate>Thu, 16 May 2019 16:56:04 +0800</pubDate><description><![CDATA[Solution
一道不错的题目。首先套路明显是逐位贪心。那么现在问题变成了如何判断一种方案是否可行。
定义原前缀最大值为在p中的前缀最大值。考虑这个题目的几个最重要的性质：

原前缀最大值一定任然是前缀最大值。
非原前缀最大值之所以能够成为新的前缀最大值，一定是因为他的“克星”在另一个序列中，也就是说，如果将这个数换到另一个序列中，那么他将不会成为前缀最大值。

那么所以，我们可以得到一些推论：...]]></description><category></category></item><item><title><![CDATA[FWT，FMT，FST，k进制FWT]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90203416</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90203416</guid><author>Demon_Rieman</author><pubDate>Tue, 14 May 2019 11:50:49 +0800</pubDate><description><![CDATA[二进制位运算
常见的二进制位运算有：或，与，异或。分别对应了FMT，FMT与FWT。
下面从易到难介绍这几种运算。一下默认幂级数长度为2n2^n2n。
FMT
即快速莫比乌斯变化，定义也挺简单的。f(S)=∑T⊂Sg(T)f(S) = \sum_{T\subset S} g(T)f(S)=T⊂S∑​g(T)
实际上就是子集和，同理定义快速莫比乌斯反演，即将快速莫比乌斯变化反演即可f^(S)=∑T⊂...]]></description><category></category></item><item><title><![CDATA[bzoj 5111 Tree]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90181972</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/90181972</guid><author>Demon_Rieman</author><pubDate>Mon, 13 May 2019 21:39:50 +0800</pubDate><description><![CDATA[description
给一棵nnn个结点的树，每个结点有一个正整数权值。要求选出一个结点的集合，满足：
1.这个集合包含111号结点
2.这个集合在树上是一个连通块。
即，设这个集合为SSS，则树上存在∣S∣−1|S|-1∣S∣−1条边，这些边连接的结点都属于SSS。
记一个集合的权值为该集合内所有结点的权值和。
求权值第kkk小的集合的权值。
solution
明显二合一。那么我们现在有两个问...]]></description><category></category></item><item><title><![CDATA[【AGC017 F】Zigzag]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/89646384</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/89646384</guid><author>Demon_Rieman</author><pubDate>Sun, 28 Apr 2019 21:30:33 +0800</pubDate><description><![CDATA[Description
给出一个类似杨辉三角的三角形，要求在上边选出m条走n步的路径，并满足：

每条路径只能往左下/右下走，；
第i+1条路径必须在第i条路径的右侧（可以重合）；

在给出一些要求，规定第x条路径的第y步一定往左下/右下走。
n,m≤20n , m \leq 20n,m≤20
Solution
首先转化一下题意，一条路径可以由一个01序列表示，那么要满足的要求就是：
1.前一个序...]]></description><category></category></item><item><title><![CDATA[【Codeforces710F】String Set Queries 多解]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/89526610</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/89526610</guid><author>Demon_Rieman</author><pubDate>Thu, 25 Apr 2019 21:25:58 +0800</pubDate><description><![CDATA[题目大意
给NNN个操作。
1.插入一个串SSS。
2.删除一个串SSS  。
3.询问未被删除的串在SSS中出现的次数。
∑∣S∣≤3e5\sum |S| \leq 3e5∑∣S∣≤3e5，强制在线。
Solution
此题有多种解法，这里例举说明几种。（设LLL为总长）
Solution 1
如果不强制在线，那么ACACAC自动机，后缀自动机都可以做此问题。（对于删除可以再建一个专门的删除的串...]]></description><category></category></item><item><title><![CDATA[保序回归求解上升问题]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/88830905</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/88830905</guid><author>Demon_Rieman</author><pubDate>Wed, 27 Mar 2019 20:46:49 +0800</pubDate><description><![CDATA[详细的明天写。（大约是明天）
定义
如果对于点对i，j，有vi &lt;= vj，那么i -&gt; j，然后最小化$\sum $

]]></description><category></category></item><item><title><![CDATA[线性基求交与求并]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/88830846</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/88830846</guid><author>Demon_Rieman</author><pubDate>Tue, 26 Mar 2019 21:31:20 +0800</pubDate><description><![CDATA[（明天更新详细讲解）
明显答案也是一个线性基。
重要的是如下公式：
如果βi\beta_iβi​能被{αi}\{\alpha_i\}{αi​}与βj=1→i−1\beta_{j = 1 \to i - 1}βj=1→i−1​线性表示出来，
我们可以把{αi}\{\alpha_i\}{αi​}或者βj=1→i−1\beta_{j = 1 \to i - 1}βj=1→i−1​加入线性基中。
详细证明...]]></description><category></category></item><item><title><![CDATA[solution for day1]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/87868353</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/87868353</guid><author>Demon_Rieman</author><pubDate>Thu, 21 Feb 2019 20:55:10 +0800</pubDate><description><![CDATA[T1

有借有还，再借不难，分类讨论，注意判断。

我们现在把自己当做 master，考虑如何构造集合卡掉 pupil。
明显只要所有点的集合相同就能卡掉不是二分图的情况，而且不同的连通块互不影响，度不超过 111 的节点也可以去掉。所以现在我们只考虑所有节点均有至少两条边的二分图。
对于完全二分图 K3,3K_{3,3}K3,3​, 样例已经给出了构造；对于完全二分图 K2,4K_{2,4}K2...]]></description><category></category></item><item><title><![CDATA[学习总结]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/87627831</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/87627831</guid><author>Demon_Rieman</author><pubDate>Mon, 18 Feb 2019 16:31:38 +0800</pubDate><description><![CDATA[全国青少年信息学奥林匹克分区竞赛（简称NOI）是经中国科协、国家教育部批准，由中国计算机学会主办的一项全国性的青少年学科竞赛活动。随着信息学奥林匹克竞赛的深入开展，越来越多的教师和学校都已投入此项教学的研究之中。我学习信息学竞赛已有1年时间。现就我在中学信息学奥林匹克竞赛学习中的做法进行交流。
信息学有许多的方面。譬如图论方面。图论作为一个新生的数学分支，相比其他数学分析来说，具有许多自有的特性。...]]></description><category></category></item><item><title><![CDATA[solution for day2]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/87455818</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/87455818</guid><author>Demon_Rieman</author><pubDate>Sat, 16 Feb 2019 16:24:33 +0800</pubDate><description><![CDATA[T1
我们现在把自己当做 master，考虑如何构造集合卡掉 pupil。
明显只要所有点的集合相同就能卡掉不是二分图的情况，而且不同的连通块互不影响，度不超过 11 的节点也可以去掉。所以现在我们只考虑所有节点均有至少两条边的二分图。
对于完全二分图 K3,3, 样例已经给出了构造；对于完全二分图 K2,4，只要一边是 (A,B) 和 (C,D)，另一边是 (A,C) ，(A,D)，(B,C)，...]]></description><category></category></item><item><title><![CDATA[后缀树 后缀数组]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84979740</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84979740</guid><author>Demon_Rieman</author><pubDate>Wed, 12 Dec 2018 21:28:24 +0800</pubDate><description><![CDATA[后缀树
我们考虑将一个串的所有后缀插入一个trie中，得到的trie就是后缀trie。我们可以发现，树上有分叉或者是后缀节点的点的个数是O(len)O(len)O(len)个，这个后面解释，于是把没有分支并且不是后缀节点的点压缩到一起，就变成了后缀树。
不难发现，后缀树可以表示该字符串的所有子串。
下面分析一下后缀树的一些性质


后缀树一个节点表示的串出现次数相同。（不然为什么能缩到一起）。

...]]></description><category></category></item><item><title><![CDATA[斯特林数]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84979216</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84979216</guid><author>Demon_Rieman</author><pubDate>Wed, 12 Dec 2018 20:49:37 +0800</pubDate><description><![CDATA[第一类斯特林数
定义
[nm]=[xm]xn‾\begin{bmatrix}n\\m \end{bmatrix}  = [x^m] x ^{\overline{n}}[nm​]=[xm]xn
即xxx的nnn次上升幂的xmx^mxm项的系数。
从此我们可以得到一个递推公式：
[nm]=（n−1）[n−1m]+[n−1m−1]\begin{bmatrix}n\\m \end{bmatrix}  = ...]]></description><category></category></item><item><title><![CDATA[二分斜率]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84865104</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84865104</guid><author>Demon_Rieman</author><pubDate>Thu, 06 Dec 2018 20:58:25 +0800</pubDate><description><![CDATA[适用范围
对于某些2D\nD的dp，状态为dp[i][j]表示在i的时候选了j个东西的最优解，要求dp[n][m]。
分析
如果设F(m)=dp[n][m]，如果F(m)是一个单峰函数（特别的，单调函数），那么我们设Cf(m)=F(m) - F(m-1) ，则Cf(m)是一个单调不降（不升）的函数，这个时候，我们从差分是离散的积分的观点来看，那么G(x)=F(x) - kx，当k=Cf(m)的时候...]]></description><category></category></item><item><title><![CDATA[Noip 2018前最后一篇博客]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84330299</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84330299</guid><author>Demon_Rieman</author><pubDate>Wed, 21 Nov 2018 21:18:05 +0800</pubDate><description><![CDATA[去年还猜了要考什么，然而果然猜错了。我还是毒奶今年会考去年写的这个。
只要不出什么大搜索之类的东西就行。
赛前本来还想学一下一直没怎么搞明白的东西，然而发现还是不会，于是跪了。
反正现在还不会什么manacher\text{manacher}manacher，类欧之类的鬼畜玩意。
下面进入正题
虚树
树上有k\text{k}k个点，然后枚举两两个点，加入他们的lca\text{lca}lca然后构...]]></description><category></category></item><item><title><![CDATA[NOIp 2018 游记]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84135353</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/84135353</guid><author>Demon_Rieman</author><pubDate>Fri, 16 Nov 2018 10:45:00 +0800</pubDate><description><![CDATA[这是一个讲述dxy_master的奇幻历险记。
从前，在那遥远的国度，有一片森林，住着几只叫做dxy的狗。它们中间有一位大师，因而这位大师名为dxy_master。
dxy_master是学习oi的，原因呢，就有些不可告人了，这里也不会说。但是总之，凭借master的身份，它成功进入了cdqz，并成为其中一位oier。
他在NOIp 2018 中因为一考惊人，而成为了不是SC队长的oier，一路披...]]></description><category></category></item><item><title><![CDATA[51Nod 1600 Simple Kmp]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/82902901</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/82902901</guid><author>Demon_Rieman</author><pubDate>Thu, 18 Oct 2018 20:14:02 +0800</pubDate><description><![CDATA[Solution
考虑这个f（s）的含义，相当于对于每一个后缀而言，他能匹配的前缀的个数（不包含他自己）就是他的深度。反过来看，就是某一个前缀的出现次数。
那么考虑key（s）的含义，就是说对于两个相同的子串s[l1，r1] ， s[l2 ，r2]，他的贡献就是len  - r2。

...]]></description><category></category></item><item><title><![CDATA[Loj 2080 JSOI2016 病毒感染]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/82870337</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/82870337</guid><author>Demon_Rieman</author><pubDate>Thu, 27 Sep 2018 17:25:33 +0800</pubDate><description><![CDATA[Solution
条件的意思是只要你往回走，那么就要把之前没有救的村庄给救了。
考虑认识怎么走的，必定是走一段，往回走，再走一段，再往回，知道救完。
那么我们设f[i]f[i]f[i]表示人现在在iii，并且1−i1-i1−i的村庄都救完的最小代价。那么我们枚举一个jjj，表示人现在jjj，有f[j]f[j]f[j]的代价，然后再从j+1j+1j+1往返走到iii。就是说，枚举转头的地方。那么设这...]]></description><category></category></item><item><title><![CDATA[Loj #2542 随机游走]]></title><link>https://blog.youkuaiyun.com/Demon_Rieman/article/details/82502409</link><guid>https://blog.youkuaiyun.com/Demon_Rieman/article/details/82502409</guid><author>Demon_Rieman</author><pubDate>Fri, 07 Sep 2018 20:44:40 +0800</pubDate><description><![CDATA[Solution

套路题目。 
首先求的是全部都被覆盖的期望，那么根据min-maxmin-max\text{min-max}容斥，我们可以计算某一个点第一次被染的期望。那么现在问题变成了给定一个点集以及一个起点，求期望下多久第一次走到点集中的某一个点。 
明显，对于一个给定的点集SSS，我们设f[i]f[i]f[i]表示在iii号点的期望，那么可以高消。考试时候写这个也可以过。 
当然这个就没...]]></description><category></category></item></channel></rss>