<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DevourPower的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DevourPower</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DevourPower]]></copyright><item><title><![CDATA[acm常识入门（给即将进队或者刚刚进队的新生）（仍在更新）]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/119394864</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/119394864</guid><author>DevourPower</author><pubDate>Wed, 04 Aug 2021 23:47:19 +0800</pubDate><description><![CDATA[模意义（同余）
同余为数论中的重要概念：
一个正整数m，如果两个整数a和b满足a-b能够被m整除，即(a-b)/m得到一个整数，那么就称整数a与b对模m同余。
记作: a≡b(modm)a≡b(mod m)a≡b(modm)或者说  a%m=ba\%m = ba%m=b 。
其中 %就是取模运算符；
对模m同余是整数的一个等价关系。
同余有很多奇妙的性质和玩法（）
首先我们约定：大写字母如A≡a(modp)A ≡ a(mod p)A≡a(modp)
乘法：

若：AB = C ， 则ab %p= c%p
乘]]></description><category></category></item><item><title><![CDATA[2021牛客暑期多校训练营3B]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/119063056</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/119063056</guid><author>DevourPower</author><pubDate>Sat, 24 Jul 2021 20:12:02 +0800</pubDate><description><![CDATA[题目
题意：矩阵，n行m列(5e3)，点有权在1e5以内，2*2小矩阵染三另一免费，求全染权和；
我：四个方向DP一下吧，应该没错吧，怎么这么多人wa，通过率血马低，不对劲，开始换做法。
一个半小时后，终于yy出来了：
2*2小矩阵染三另一免费
这是唯一一个约束，那易想到一个万能解法，那就是选一列全选了，然后之后每一列都选一个点，剩下的点都是免费的，那么一共选了n+m-1个点；显然这个并不是最优解，因为没有考虑点权。
继续yy：
(i,j),(i+1,j),(i,j+1)都选了，
那么第四个点就能取了,考虑]]></description><category></category></item><item><title><![CDATA[2014 - 2015东京区域赛：Problem G Flipping Parentheses【线段树变种】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/116976325</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/116976325</guid><author>DevourPower</author><pubDate>Tue, 18 May 2021 09:51:32 +0800</pubDate><description><![CDATA[比赛链接
本题题意：给你一个合法的括号串，比如(())()()()()
然后会改变q次，每次改变一个括号的朝向，然后你要输出一个数ans表示你要翻转第ans个括号的朝向使得新的串仍然是合法的；同时如果存在多个ans，请对最左边的括号操作。即要求找一个leftest 下标翻转后能保持括号信息正常；
括号匹配容易想到栈和前缀和。栈排除，因为有q次操作；前缀和设左括号为+1，右括号为-1，于是能得到一个前缀和串；
容易知道，括号串合法的充要条件是前缀和串处处不为负数；
又双叒叕容易想到：
如果翻转了pos位置的一]]></description><category></category></item><item><title><![CDATA[HDU - 6315 / 2018杭电多校第二场G - Naive Operations【线段树变种】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/116975322</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/116975322</guid><author>DevourPower</author><pubDate>Tue, 18 May 2021 09:33:00 +0800</pubDate><description><![CDATA[题目链接不放，杭电一搜就有
线段树作为区间可加性信息的分治数据结构，通常用于解决具有可加性的区间信息统计，这玩意非常好用。
本题题目：要求维护的是∑i=LR⌊AiBi⌋\sum_{i=L}^{R}{\lfloor  \frac{Ai}{Bi} \rfloor}∑i=LR​⌊BiAi​⌋
更新操作只有[L,R]表示，区间内A的值+1；
,然后B保证是一个1到n的置换，即B大小为n，且1&lt;=Bi&lt;=n且Bi两两不同；
设定ai初始值全0；
解法
本题是非常灵活的线段树用法，可以说是铜牌题了；
容易想]]></description><category></category></item><item><title><![CDATA[树上启发式合并【含2020CCPC长春F题等稍微变种】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/116267020</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/116267020</guid><author>DevourPower</author><pubDate>Thu, 29 Apr 2021 13:51:39 +0800</pubDate><description><![CDATA[学习了树上启发式合并一段时间了，我来写一个总结吧；
树上启发式合并叫做Dsu On Tree
被某个毒瘤大佬称为静态链分治；
树上启发式合并我也不知道为什么叫启发式。
但是在我的理解中树上启发式合并和莫队分块都是一样的暴力的机制。是一种合理分配查询的顺序来节省资源的做法；
莫队分块可以在多次询问中合理安排询问的顺序，导致时间变成n*sqrt(n)；
而树上启发式合并则更加强悍，时间复杂度为nlogn；
首先来一手板题：
给你一个树，询问每一个结点子树中含有不同颜色的数有多少种；颜色也是与n一个数量级，设都是]]></description><category></category></item><item><title><![CDATA[Codeforces Round #716 (Div. 2)   CD题解证明]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/115891480</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/115891480</guid><author>DevourPower</author><pubDate>Tue, 20 Apr 2021 09:28:39 +0800</pubDate><description><![CDATA[4.19CF题解；
关于CD的证明：
C：
本题求的是一个1到n-1的序列，请找出一个最长的满足要求的子序列，求任意方案：要求为：子序列元素乘积mod n为1；
赛时觉得结论为：子序列元素如果尽量都和n互素那么会是最好的取法吧，依照这个引理的话我们就很容易可以联想到所有和n互素的数都丢出来：
n = 9,那么最大互素集合就是1 2 4 5 7 8 这6个数；
又双叒叕可以联想到互素集合子集乘积一定是与n互素的。
那么依照上述引理可以简单分为两类：
1  答案为ϕ(n)\phi(n)ϕ(n)
2  答案为ϕ(]]></description><category></category></item><item><title><![CDATA[B - Operation线性基入门：【条件动态维护区间线性基】【前缀线性基】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/115077857</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/115077857</guid><author>DevourPower</author><pubDate>Mon, 22 Mar 2021 15:19:54 +0800</pubDate><description><![CDATA[题目链接VJ
题目链接HDU
（本文是对%%%%%的学习笔记，同时使用了本题作为例题学。）
线性基真是个简单而强大的东西，然而我因为很少遇到线性基的题目基本没有怎么学习，线性基是一个基于贪心的数据处理技巧。
如果定义原序列通过若干个元素异或的到的新集合为序列的异或域，那么线性基就是一个异或域与原序列异或域相同的极小集合。
线性基三大性质：

1.原序列里面的任意一个数都可以由线性基里面的一些数异或得到
2.线性基里面的任意一些数异或起来都不能得到 0 00
3.线性基里面的数的个数唯一，并且在保持性质一的前]]></description><category></category></item><item><title><![CDATA[阶段总结]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/114448685</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/114448685</guid><author>DevourPower</author><pubDate>Sat, 06 Mar 2021 17:30:07 +0800</pubDate><description><![CDATA[寒假毫无例外又是一个颓废的假期，家里学习环境极差的同时，自己也没有积极克服这个困难。假期6,7场cf只打了一场，寒假前半段时间有组队训练但是并没有取得很好的效果。归根结底还是自己松懈了。
　　家附近十分多噪音，大环境就是吵闹，午觉是没有的，不可能睡得着。于是作息便与在校期间完全相左。作息的颠倒导致本来就不怎么样的睡眠质量直线下降。于是许多念头连同一些借口都浮于心头。即使我知道这些都是消极的，都是借口，但是我还是接受了。
　　诚然居家学习有各种困难，但是理论上还是可以多少学一些，比如cf上2000完全是没问题]]></description><category></category></item><item><title><![CDATA[Educational Codeforces Round 102 C/D题解【构造】和【维护乱搞】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/112651510</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/112651510</guid><author>DevourPower</author><pubDate>Fri, 15 Jan 2021 11:16:28 +0800</pubDate><description><![CDATA[题目链接C
题目链接D
C.
题意为：给定n,k , (n&lt;=k&lt;2n)
求构造出来一个长度为k的p序列，使得：
b序列 = p1,p2,p3,p4......pk,pk−1......pk−(n−k)p_1,p_2,p_3,p_4......p_k,p_{k-1}......p_{k-(n-k)}p1​,p2​,p3​,p4​......pk​,pk−1​......pk−(n−k)​的逆序数小于等于a = 1,2,3,4.....k,k−1......k−(n−k)1,2,3,4.....k]]></description><category></category></item><item><title><![CDATA[Codeforces Round #695 (Div. 2)D. Sum of Paths【计数题】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/112640037</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/112640037</guid><author>DevourPower</author><pubDate>Thu, 14 Jan 2021 21:46:36 +0800</pubDate><description><![CDATA[题目链接___
题意：
给定n个长度小格子，每步可以走到-1或+1下标，不能越界。
走k步产生一个序列：c0,c1,c2……ckc_0,c_1,c_2……c_kc0​,c1​,c2​……ck​对应Ac0+Ac1+Ac2.....A_{c0}+A_{c1}+A_{c2}.....Ac0​+Ac1​+Ac2​.....
求所有这样序列总和。即：路径下标权值和为路径权值，求所有路径权值和
本题难以从逐个递推角度求解。我设了一些函数都难以处理这个状态的转移。最后设了一个：f(i,j)f( i, j )f(i,j)表]]></description><category></category></item><item><title><![CDATA[Dsu on tree树上启发式合并经典例题算法代码剖析]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/109614838</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/109614838</guid><author>DevourPower</author><pubDate>Wed, 11 Nov 2020 11:27:38 +0800</pubDate><description><![CDATA[题目链接：E. Lomsat gelral
树上启发式合并合并，初见这个名字，我和大部分人一样望文生义觉得应该是子树信息的合并使用了一种“启发式”，相当于区间操作的线段树的Lzay标志一般，仅仅启发而不去真的合并。
然后我兴高采烈的学了一下发现其实就是一个暴力。一个优雅的暴力优化。
dsu on tree，dsu就是并查集，直译为树上并查集。(某L称该算法为静态链分治。
首先我们审视一下题目暴力的写法：
对于每个子树开一个桶或者对每个子树都清空一次桶，然后暴力跑得出空间为N2N^2N2 或者时间为N2N^2]]></description><category></category></item><item><title><![CDATA[2020.11.8 CCPC赛后总结(包括阶段总结【ccpc长春分站赛铜总结】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/109564693</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/109564693</guid><author>DevourPower</author><pubDate>Sun, 08 Nov 2020 21:09:23 +0800</pubDate><description><![CDATA[2020CCPC长春137名喜提铜尾，跟我们一开始目标一样：无论是尾巴还是头，只要有牌子就是完成任务。
然而，这一拳像是打在棉花上，根本没有用力，棉花融化了。跟我们一开始想的对铜牌门一顿激烈猛冲，才破门而入的成就感不太一样。2题低罚时就能铜尾只能说题目前半部分区分度并不好。
概括我们水平的话，期望大概也在铜尾，所以对题目也没啥好可惜的。反倒是师傅队因为2题罚时高了点就打铁了，平常训练基本都有银牌的发挥的。
总结一下这场比赛，其实也没什么好总结的。第一题爆搜过，并不快也不慢的13分钟稳健1a，然后D题zf做过]]></description><category></category></item><item><title><![CDATA[ACM0基础动态规划启蒙：Dp是个啥]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/109165866</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/109165866</guid><author>DevourPower</author><pubDate>Mon, 19 Oct 2020 18:56:58 +0800</pubDate><description><![CDATA[动态规划：DP：Dynamic Programming是算法的设计方法，是一种编程思想，主要用于解决最优解、计数类型的问题。
Dp是一种思想！！！是一种没有固定代码的算法。
如果不是一定要有严谨的记忆化，状态意义，状态转移方程，步数合并的过程才叫Dp，那么不妨把一些奇奇怪怪的东西也和Dp扯上关系
0基础新人的第一个启蒙算法应该大部分都是 Dfs ，好我现在就把这个东西叫做Dp。
Question:Dfs为什么叫Dp？
Dp需要步数合并对吧，把一些没必要的操作给省略掉或者一些可以合并的操作給合并。

举个例子]]></description><category></category></item><item><title><![CDATA[【板子库】P3384 【模板】轻重链剖分 / 树链剖分模板题]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/108514466</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/108514466</guid><author>DevourPower</author><pubDate>Thu, 10 Sep 2020 15:06:55 +0800</pubDate><description><![CDATA[P3384 【模板】轻重链剖分
code:
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;cstdio&gt;
#include &lt;cmath&gt;
#include &lt;cstring&gt;
#include &lt;string&gt;
#include &lt;climits&gt;
#include &lt;queue&gt;
#include &lt;stack&gt;
#include &lt;m]]></description><category></category></item><item><title><![CDATA[【班子库&数据结构笔记】平衡树入门之AVL树 NOI2004 郁闷的出纳员]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/108384366</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/108384366</guid><author>DevourPower</author><pubDate>Thu, 03 Sep 2020 15:40:04 +0800</pubDate><description><![CDATA[题目链接
平衡树是平衡的二叉搜索树，平衡树能够很好地解决暴力BST的一大缺点：某些子树肥大臃肿导致了查询速度的退化。
其中旋转操作是灵魂，能够通过旋转操作做到平衡两个子树的结点数量。当一方比较肥大的时候就会进行zig左旋 / zag右旋 /zigzag双旋/zagzig双旋来平衡；
同时添加size维护子树大小，还有插入的数字大小一样的时候，开一个cnt记录数量。
Code:
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;]]></description><category></category></item><item><title><![CDATA[bfs序上建线段树维护树层信息/dfs序上建线段树维护子树信息]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/108381940</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/108381940</guid><author>DevourPower</author><pubDate>Thu, 03 Sep 2020 14:21:20 +0800</pubDate><description><![CDATA[dfs过程中遍历到栈中某个结点是先完成全部子树的过程才会出栈。这个过程的得到的dfs序每个个点出现两次中间就是其子树
bfs序不同，为先出队列再压进新的结点，如此得到的每个数出现两次间就是树层信息，也就是同高度。

...]]></description><category></category></item><item><title><![CDATA[Codeforces Round #666 (Div. 2)D.Stoned Game【奇偶和博弈 + 制高点】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/108315229</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/108315229</guid><author>DevourPower</author><pubDate>Mon, 31 Aug 2020 09:35:11 +0800</pubDate><description><![CDATA[题目链接
上面有题目链接，这个题乍一看是一个很裸的奇偶和博弈：给n个数，先后手轮流取1，那么当总和为奇数，先手为优势局面。
题目朴素解法就是求和得出来sum的奇偶性，
if(sum%2)先手胜利；
但是存在一个制高点问题，博弈论制高点指的是有一个状态的元素为强制优势局面。那么这个题的制高点是什么呢？
如果是
3
100 2 2
这组数据，先手选第一个堆，那么后手只能选取后面两个，先手继续取第一个堆。如此一来先手永远处于一个强制优势局面，哪怕现在的sum是偶数，先手总能在第一堆继续取，直到后手没有东西可以取了]]></description><category></category></item><item><title><![CDATA[数论笔记：杂篇]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/107817472</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/107817472</guid><author>DevourPower</author><pubDate>Wed, 05 Aug 2020 15:59:34 +0800</pubDate><description><![CDATA[没有摘录到本子上的斐波那契结论式子：
1：f(0)-f(1)+f(2)-…+(-1)n·f(n)=(-1)n·[f(n+1)-f(n)]+1

]]></description><category></category></item><item><title><![CDATA[2020暑假杭电多校第三场：05/E : Little W and Contest【路径压缩并查集+数学式子】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/107669054</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/107669054</guid><author>DevourPower</author><pubDate>Wed, 29 Jul 2020 16:46:02 +0800</pubDate><description><![CDATA[题目链接：杭电problems6795
题解太过于玄乎，我写一下直接用数学式子解决的方法把：
我们把1能力的选手和2能力的选手分成两堆：
能力1选手数量为：n
能力2选手数量为：m
每一次操作其实就是两个连通块给连起来对不对？我们初始化：每一个点都是一个连通块，能力为1的选手的连通块我们在根节点用a=1,b=0表示这个连通块的能力为1选手数量为1，能力为2选手数量为0；
那么我们0次操作后的答案是很容易求出来的：C(2,m)*n+C(3,m)。
我们用last变量存上一次操作的答案。
在某次操作，我们把a1]]></description><category></category></item><item><title><![CDATA[【板子库(没有解释，萌新绕路)】全局第k小，权值线段树做法+离散化解决带修改问题的离线做法【待验证，不保证代码无误】]]></title><link>https://blog.youkuaiyun.com/DevourPower/article/details/107625198</link><guid>https://blog.youkuaiyun.com/DevourPower/article/details/107625198</guid><author>DevourPower</author><pubDate>Tue, 28 Jul 2020 00:19:25 +0800</pubDate><description><![CDATA[如果要看权值线段树是啥的萌新绕路，为你们节省时间，文章仅对代码进行解释.
main函数内对point数组有序，pos函数是二分查出值对应的离散化后的值(排名)。以此来对所有数都离散化处理，为存起来询问的离线做法。
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;cstdio&gt;
#include &lt;cmath&gt;
#include &lt;cstring&gt;
#include &lt;string&gt;
]]></description><category></category></item></channel></rss>