<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[KsCla]]></title><description><![CDATA[なかない君と嘆きの世界 輪廻の刻は暮れゆけど]]></description><link>https://blog.youkuaiyun.com/KsCla</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KsCla]]></copyright><item><title><![CDATA[BZOJ4538：[Hnoi2016]网络 （整体二分+Lca+树状数组/线段树+路径交/树链剖分+Heap）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/77649971</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/77649971</guid><author>KsCla</author><pubDate>Sat, 28 Dec 2019 01:25:53 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=4538题目分析：这题网上好多人写树剖啊，都是把一条路径的区间搞出来之后取反更新，删除的话就套个Heap或者写线段树CDQ分治blablabla，时间复杂度O(nlog3(n))O(nlog^3(n))，好像因为树剖和Heap的常数特别小所以根本不虚。网上某大神用这种方法8200ms就过了，而]]></description><category></category></item><item><title><![CDATA[手动友链]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/103736210</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/103736210</guid><author>KsCla</author><pubDate>Fri, 27 Dec 2019 17:50:31 +0800</pubDate><description><![CDATA[没有摘要]]></description><category></category></item><item><title><![CDATA[CSP2019Day2T3 洛谷P5666：树的重心 （树上倍增）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/103220633</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/103220633</guid><author>KsCla</author><pubDate>Sun, 24 Nov 2019 00:59:31 +0800</pubDate><description><![CDATA[题目传送门：https://www.luogu.org/problem/P5666

很早以前就觉得，凡是考树的重心相关的题，到最后都变成一道模拟题。
树的重心有许多优秀的性质，比如：
结论一：记f(node)表示以node为根的最大子树的大小。从无根树上的任意一个点x出发，向相邻的点走一步。假设某个点y的f值比x的小，那么x向y走就相当于向树的重心移动了一步。假设不存在这样的y，那么x就是重心。...]]></description><category></category></item><item><title><![CDATA[咕咕咕]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/95252534</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/95252534</guid><author>KsCla</author><pubDate>Tue, 09 Jul 2019 23:24:08 +0800</pubDate><description><![CDATA[没有摘要]]></description><category></category></item><item><title><![CDATA[BZOJ5495：[2019省队联测]异或粽子 （Trie+贪心）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/92666249</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/92666249</guid><author>KsCla</author><pubDate>Mon, 17 Jun 2019 18:03:24 +0800</pubDate><description><![CDATA[题目传送门
BZOJ（没题面）
洛谷（有题面）

题目大意
给出一个长为n的序列，选择k个不完全重合的区间使得每个区间的异或值的总和最大。

题解
作为高三退役狗康复训练的第一题，我发现我的做法有点特立独行……
4月份Ghastlcon跟我说这题的时候，我在想为什么要用可持久化Trie。而现在我YY出了一个既不用可持久化也不用堆的方法。
首先把所有的异或前缀和扔进Trie，接下来目标就是找最大的k...]]></description><category></category></item><item><title><![CDATA[UOJ#348：【WC2018】州区划分 （FMT优化DP）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79981244</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79981244</guid><author>KsCla</author><pubDate>Tue, 17 Apr 2018 22:06:42 +0800</pubDate><description><![CDATA[题目传送门：http://uoj.ac/problem/348



题目分析：题面就是要求将n个点划分为若干个集合，使得刚好包含某个集合的点以及它们之间的边的子图不存在欧拉回路。然后题面给出了一种方法计算某种方案的贡献。

由于n很小，不妨先用h[s]表示s中的点能不能刚好划分为一个集合。算出h[]的时间是O(n22n)O(n22n)O(n^22^n)的。对于题面给出的式子，我们发现每个集合的贡...]]></description><category></category></item><item><title><![CDATA[CodeChef Counting D-sets （容斥原理+组合数学）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79749410</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79749410</guid><author>KsCla</author><pubDate>Thu, 29 Mar 2018 21:40:41 +0800</pubDate><description><![CDATA[vjudge题面传送门：https://cn.vjudge.net/problem/CodeChef-CNTDSETS

（PS：vjudge上中文版的题面有误，一个点集的直径应该定义为其中点对的切比雪夫距离的最大值。切比雪夫距离是两个点各个维度之差的绝对值取max。这一点看回英文版题面就能知道）



题目分析：一道思维难度较大，代码量极少的题。

直径=d的点集数 = 直径&amp;lt;=d的点集数...]]></description><category></category></item><item><title><![CDATA[BZOJ4767：两双手 （组合数学+DP+容斥原理）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79744716</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79744716</guid><author>KsCla</author><pubDate>Thu, 29 Mar 2018 16:28:10 +0800</pubDate><description><![CDATA[题目传送门：https://www.lydsy.com/JudgeOnline/problem.php?id=4767



题目分析：一开始看题目名还以为是两只手，后来感觉有些不对劲……

题面保证了给出的两个向量叉积为0，就是说它们不平行。不平行的两个向量可以作为一组基底，这样原先平面上的所有点就获得了一个新坐标。于是问题变成了：从(0,0)走到(n,m)，中间不能经过指定的k个点，求方案数。...]]></description><category></category></item><item><title><![CDATA[circle （容斥原理+数据结构）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79739333</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79739333</guid><author>KsCla</author><pubDate>Thu, 29 Mar 2018 10:56:47 +0800</pubDate><description><![CDATA[题目大意：在一条直线上有2*n个点，点与点之间两两配对成n组。现在要你选出三组点对，使得这三组点对满足112233，122331，123123的其中一种形式，问方案数。n≤105n≤105n\leq 10^5。



题目分析：多年前的老坑，昨天晚上想填一下，发现还是不会做，而且我还是看不懂题解。懵逼了一整晚，最后翻出标程来看，终于看懂了做法。

从n个点对中选取3个点对，有C3nCn3C_n^3...]]></description><category></category></item><item><title><![CDATA[BZOJ4710：[Jsoi2011]分特产 （容斥原理+组合数学+DP）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79723943</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79723943</guid><author>KsCla</author><pubDate>Wed, 28 Mar 2018 10:54:59 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=4710



题目分析：一开始看完全没有头绪，后来发现这不就是个和第二类stirling数很像的容斥吗？

首先考虑没有“每个人至少要拿一个特产”这个条件怎么做。由于不同的特产之间是独立的，可以记h[i][j]表示前i个人拿了j件特产的方案数。转移方程为h[i][j]=∑jk=0h[i−1...]]></description><category></category></item><item><title><![CDATA[BZOJ1042：[HAOI2008]硬币购物 （容斥原理+DP）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79722594</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79722594</guid><author>KsCla</author><pubDate>Wed, 28 Mar 2018 09:23:41 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=1042



题目分析：我看某个课件看到这题，一开始还以为每组询问都重新给出四个面值，导致我一直没有思路QAQ。

由于四个面值是固定的，可以先做一次完全背包，将价值为1~maxs的答案记下来。每次询问的时候，记f(s)表示 只有 s集合中的硬币超过限制的方案数，记g(s)表示 至少有 s...]]></description><category></category></item><item><title><![CDATA[BZOJ4008：[HNOI2015]亚瑟王 （概率DP）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79714485</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79714485</guid><author>KsCla</author><pubDate>Tue, 27 Mar 2018 15:58:42 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=4008



题目分析：一道很厉害的DP，做法和背包类似。记g[i][j]表示前i张卡牌，有j张卡牌发动了技能的概率，那么存在如下转移：

g[i+1][j]=g[i][j]∗(1−p[i+1])r−jg[i+1][j]=g[i][j]∗(1−p[i+1])r−jg[i+1][j]=g[i...]]></description><category></category></item><item><title><![CDATA[BZOJ1444：[Jsoi2009]有趣的游戏 （AC自动机+概率DP+高斯消元）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79709513</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79709513</guid><author>KsCla</author><pubDate>Tue, 27 Mar 2018 11:11:54 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=1444



题目分析：首先考虑静态的问题：如果已经生成一个字符串，如何让它跟所有模式串匹配？答案是建出所有模式串的AC自动机，然后让生成串在上面跑，如果跑到某个有endpos的节点就一直停在那里。

然后考虑动态的问题：如果生成串无限长，如何求出它停在每个节点的概率？把AC自动机扩展成T...]]></description><category></category></item><item><title><![CDATA[BZOJ3143：[Hnoi2013]游走 （高斯消元+概率DP）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79704183</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79704183</guid><author>KsCla</author><pubDate>Mon, 26 Mar 2018 21:26:43 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=3143



题目分析：很久之前就对这种高斯消元解DP值的题目有一种莫名的恐惧，因为它明明是DP却没有递推顺序因为我对概率论一窍不通。学了高消之后，我YY了一下这题的DP方程，发现一直过不了样例。最后居然被tututu在旁边随便口胡一句就过了？！

本题要让我们自定每条边的权值，所以我们想...]]></description><category></category></item><item><title><![CDATA[BZOJ1923：[Sdoi2010]外星千足虫 （高斯消元+二进制压位）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79700238</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79700238</guid><author>KsCla</author><pubDate>Mon, 26 Mar 2018 16:52:50 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=1923



题目分析：一开始还很好奇什么是异或高斯消元，后来发现就是用高消解异或方程组。

普通的n3n3n^3高消理论上来说是过不了这题的，虽然实际上能过。观察一下，发现高斯消元的主要时间在于选定某一行作为主元后，将后面几行的对应位置变成0。而本题由于是异或操作，可以用bitset或者...]]></description><category></category></item><item><title><![CDATA[BZOJ1013：[JSOI2008]球形空间产生器sphere （高斯消元）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79698476</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79698476</guid><author>KsCla</author><pubDate>Mon, 26 Mar 2018 15:12:36 +0800</pubDate><description><![CDATA[题目传送门：http://www.lydsy.com/JudgeOnline/problem.php?id=1013



题目分析：设题面给出的第i个坐标为(ai,1,ai,2……ai,n)(ai,1,ai,2……ai,n)(a_{i,1},a_{i,2}……a_{i,n})，设答案为(b1,b2……bn)(b1,b2……bn)(b_1,b_2……b_n)。经过一番推导，令：

pi=2∑j=1...]]></description><category></category></item><item><title><![CDATA[洛谷P3389：【模板】高斯消元法]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79695320</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79695320</guid><author>KsCla</author><pubDate>Mon, 26 Mar 2018 11:07:46 +0800</pubDate><description><![CDATA[题目传送门：https://www.luogu.org/problemnew/show/P3389



题目分析：时隔多年（月），我终于入了高消这个坑。

表示挂一发模板就跑，以后复习用。

具体细节什么的还是自己YY吧，有益身心健康。



CODE：



#include&amp;lt;iostream&amp;gt;
#include&amp;lt;string&amp;gt;
#include&amp;lt;cstring&amp;...]]></description><category></category></item><item><title><![CDATA[count （类插头DP+矩阵快速幂）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79658859</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79658859</guid><author>KsCla</author><pubDate>Thu, 22 Mar 2018 20:19:00 +0800</pubDate><description><![CDATA[题目大意：有n个点，编号为1~n。第i个点和第j个点之间有一条无向边当且仅当|i-j|&amp;lt;=k。求这个图的生成树个数。k≤5,n≤1015k≤5,n≤1015k\leq 5,n\leq 10^{15}。



题目分析：Coming在他初二时的资料里找到的一道题，是我校上古大神cdc给的。我不得不吐槽：难道前几届的dalao初二就能做这种题了吗？而且题面还很恶意地给出了怎么用矩阵树定理算无向图...]]></description><category></category></item><item><title><![CDATA[CodeChef Union on Tree （虚树+点分治）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79653266</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79653266</guid><author>KsCla</author><pubDate>Thu, 22 Mar 2018 14:38:41 +0800</pubDate><description><![CDATA[vjudge题面传送门：https://cn.vjudge.net/problem/CodeChef-BTREE



题目分析：sro wjmzbmr

这是道码农神题。首先考虑简化版的问题：如果给出一个点x，再给出一个距离d，如何求出距离x不超过d的点的个数？这可以用点分治解决。先用点分治预处理出每个连通块的所有点到其分治中心mid的深度数组f。f[mid][son][dep]=num表示分治...]]></description><category></category></item><item><title><![CDATA[洛谷P4067：[SDOI2016]储能表 （数位DP）]]></title><link>https://blog.youkuaiyun.com/KsCla/article/details/79648471</link><guid>https://blog.youkuaiyun.com/KsCla/article/details/79648471</guid><author>KsCla</author><pubDate>Thu, 22 Mar 2018 08:39:20 +0800</pubDate><description><![CDATA[题目传送门：https://www.luogu.org/problemnew/show/P4067



题目分析：一道令我心态爆炸的数位DP。一调调一天，WA不花一分钱

先说一下我理解的数位DP是什么。数位DP本质上还是个DP，它里面有很多重复的子问题。但现在题面给了DP的下标一个上界限制，而我们不能直接枚举下标，所以要贴着这个上界限制来DFS。形象地做个比喻就是走楼梯，DFS的时候要紧贴着楼...]]></description><category></category></item></channel></rss>