<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[扩展の灰(Extended Ash/Cooevjnz)]]></title><description><![CDATA[御坂的抱枕，名字就叫灰哦，御坂抱着抱枕这样说道。]]></description><link>https://blog.youkuaiyun.com/JacaJava</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JacaJava]]></copyright><item><title><![CDATA[容斥原理基本思想]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/115866893</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/115866893</guid><author>JacaJava</author><pubDate>Mon, 19 Apr 2021 19:21:37 +0800</pubDate><description><![CDATA[基本原理：对于f(n),g(n)f(n),g(n)f(n),g(n)如果有以下关系g(i)=∑j=inf(j)∗C(j,i)g(i)=\sum_{j=i}^nf(j)*C(j,i)g(i)=j=i∑n​f(j)∗C(j,i)
而且存在系数F(n),G(n)F(n),G(n)F(n),G(n)满足F(n)=∑i=1nC(n,i)∗G(i)F(n)=\sum_{i=1}^nC(n,i)*G(i)F(n)=i=1∑n​C(n,i)∗G(i)
那么就可以得到结果∑i=1nf(i)∗F(i)=∑i=1ng(i)∗G(]]></description><category></category></item><item><title><![CDATA[一些反演求和过程？]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/86547517</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/86547517</guid><author>JacaJava</author><pubDate>Fri, 18 Jan 2019 22:38:30 +0800</pubDate><description><![CDATA[.
问题∑i,j&amp;amp;lt;=niaja(i,j)b\sum_{i,j&amp;amp;lt;=n}i^aj^a(i,j)^bi,j&amp;lt;=n∑​iaja(i,j)b记f(d)=∑(i,j)=diajaF(d)=∑d∣i,d∣jiajaf(d)=\sum_{(i,j)=d}i^aj^a \\ F(d)=\sum_{d|i,d|j}i^aj^af(d)=(i,j)=d∑​iajaF(d)=d∣i,d∣...]]></description><category></category></item><item><title><![CDATA[UOJ62 怎样跑的更快]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/86529511</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/86529511</guid><author>JacaJava</author><pubDate>Fri, 18 Jan 2019 21:29:40 +0800</pubDate><description><![CDATA[bi=∑j=1n(i,j)c−d∗idjdzjb_i=\sum_{j=1}^n(i,j)^{c-d}*i^dj^dz_jbi​=j=1∑n​(i,j)c−d∗idjdzj​
biid=∑j=1nzjjd(i,j)c−d\frac{b_i}{i^d}=\sum_{j=1}^nz_jj^d(i,j)^{c-d}idbi​​=j=1∑n​zj​jd(i,j)c−d记(i,j)=x,Bi=biid,Zi=...]]></description><category></category></item><item><title><![CDATA[LOJ 6495~6497「雅礼集训 2018 Day1」]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/85724377</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/85724377</guid><author>JacaJava</author><pubDate>Fri, 04 Jan 2019 08:47:08 +0800</pubDate><description><![CDATA[.
真是看懂std就秒的三道题，但是看懂就很难啊
（感谢superguymj和memset0两个大佬的代码）
稍微说一下题解
--------------------------------------------------------
 「雅礼集训 2018 Day1」树
这道题的正解被superguymj大佬吊打了，原来O(n⋅2n)O(n·2^n)O(n⋅2n)变成了O(n4)O(n^4)...]]></description><category></category></item><item><title><![CDATA[一般做题流程(雾)]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/85641037</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/85641037</guid><author>JacaJava</author><pubDate>Wed, 02 Jan 2019 21:18:25 +0800</pubDate><description><![CDATA[.
如果一道题没有题解怎么办呢
介绍一个非常有效的办法：

首先打开LOJ
点标签雅礼集训
点开没做的第1道题，看题，并暗示自己这题很简单，稍微看一下std就会了
点“统计”
点开superguymj的代码看（如果没有就随便找一个）
看完并理解后开始写代码
多次尝试提交然后AC

很快你就会成为神仙辣
我太菜了永远不能成为神仙
距离THUWC还有一个月吧，共勉

...]]></description><category></category></item><item><title><![CDATA[PKUSC2018部分题解]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/85334317</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/85334317</guid><author>JacaJava</author><pubDate>Sat, 29 Dec 2018 11:04:04 +0800</pubDate><description><![CDATA[.
LOJ的std+数据+当时讲题的记忆硬是刚了五道题（D1t3咕咕咕）
稍微写一下题解

LOJ6432 「PKUSC2018」真实排名
一道比较简单的题，不过需要注意很多细节
考虑排名不变的两种情况
1.自己分数xxx不变，那么所有分数在[[x2],x)[[\frac{x}{2}],x)[[2x​],x)中的其他人的分数也不能变，否则必然有在自己后面的人到自己前面
2.自己分数xxx翻倍，那么...]]></description><category></category></item><item><title><![CDATA[Bzoj1185 [HNOI2007]最小矩形覆盖 + Bzoj1069 [SCOI2007]最大土地面积]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/85271890</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/85271890</guid><author>JacaJava</author><pubDate>Thu, 27 Dec 2018 08:28:09 +0800</pubDate><description><![CDATA[.
题目链接1
题目链接2
2道旋转卡壳算法+凸包模板题
应该说是一个比较标准的算法了，凸包就是排序+单调栈搞一下就好
旋转卡壳就是一个运用了凸包单调性的思想，每次逆时针走一条边，就把对点移动一个
第一题稍微麻烦，需要枚举矩形的一条边，让后找水平方向和垂直方向最远距离，分别用点积和叉积就可以判
第二题直接枚举对角线，让后找左右点到直线最长距离
稍微注意基本运算和函数的实现就可以了，剩下的都是可以现...]]></description><category></category></item><item><title><![CDATA[计算几何模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/85256937</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/85256937</guid><author>JacaJava</author><pubDate>Wed, 26 Dec 2018 09:27:42 +0800</pubDate><description><![CDATA[超级大毒瘤

目前有仅有基本运算和求凸包以及面积
估计很快会加上半平面交&amp;amp;旋转卡(qia)壳(ke)
动态凸包……这辈子都不会有的（真香）
Debugging…
#include&amp;lt;math.h&amp;gt;
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#include&amp;lt;algorithm&amp;gt;
#define eps 1e-7
...]]></description><category></category></item><item><title><![CDATA[KD-Tree模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/85234666</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/85234666</guid><author>JacaJava</author><pubDate>Mon, 24 Dec 2018 15:58:34 +0800</pubDate><description><![CDATA[.
题：Bzoj2850
参考资料
好像其实挺好写的（就是慢了很多很多），复杂度是O(kn1−1k)O(kn^{1-\frac{1}{k}})O(kn1−k1​)
只能算是一个“分块级别”的暴力，离线段树这种还差很多
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#include&amp;lt;algorithm&amp;gt;
#define N 50010
...]]></description><category></category></item><item><title><![CDATA[Bzoj2434 阿狸的打字机]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84556626</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84556626</guid><author>JacaJava</author><pubDate>Mon, 26 Nov 2018 21:12:32 +0800</pubDate><description><![CDATA[纪念一次AC，水一篇blog

又是喜闻乐见的广义SAM题辣
题意：给一个trie，每次问询一个串在另一个串出现的次数
思路：建立广义SAM，离线所有询问，每次讲一个主串在fail树上的节点+1，处理询问就用fenwick维护子树和
这里注意，
1.广义SAM要用bfs建
2.每次从一个主串到下一个时，不要整个都减掉而是要在LCA处会和，这样复杂度就是对的
代码有点长但是很好打
#include&amp;...]]></description><category></category></item><item><title><![CDATA[LCT模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84501195</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84501195</guid><author>JacaJava</author><pubDate>Sun, 25 Nov 2018 19:10:32 +0800</pubDate><description><![CDATA[此题是bzoj2631
Lct真的是看一眼就懂的数据结构，Tarjan太强了
考虑轻重链剖分，我们可以将一条路径分成log个区间
而在Lct上，用splay来完成这一过程，每次将节点到根的路径强制变为重路径(Access操作)
这样，就可以很方便的来完成链上的查询和修改了
而换根，需要维护一个Reverse标记，每次access(x)access(x)access(x)之后将整颗splay翻转
反...]]></description><category></category></item><item><title><![CDATA[ETT模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84475246</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84475246</guid><author>JacaJava</author><pubDate>Sun, 25 Nov 2018 10:04:30 +0800</pubDate><description><![CDATA[其实这个是弹飞绵羊辣
ETT比lct好写很多
简单来说就是维护树的dfn序列，因为其长度为2n所以效率会不如lct
这里只有换父亲的操作（用一个超级根作为所有树的父亲，就可以支持link和cut），维护的信息是节点的深度，换根到时候再学
说一下几个实现的技巧
可以用splay来维护，由于需要用到抽出一段的操作，建议开一个数组存每个节点的前驱和后继，这样可以省去找前驱后继的常数，但是依然没有LCT的...]]></description><category></category></item><item><title><![CDATA[Latex代码测试]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84308217</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84308217</guid><author>JacaJava</author><pubDate>Tue, 20 Nov 2018 19:16:57 +0800</pubDate><description><![CDATA[#include&amp;amp;amp;lt;queue&amp;amp;amp;gt;\#include&amp;amp;amp;lt;queue&amp;amp;amp;gt;#include&amp;amp;lt;queue&amp;amp;gt;
#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;\#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include&amp;amp;lt;stdio.h&amp;]]></description><category></category></item><item><title><![CDATA[字符串专题1]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84261132</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84261132</guid><author>JacaJava</author><pubDate>Mon, 19 Nov 2018 22:06:20 +0800</pubDate><description><![CDATA[.
都是些bzoj原题辣，这几天刚做的 
Bzoj4032
有趣的dp题，也要用到各种自动机
注意到题目的两个关键词“子串”和“子序列”
考虑对A和B串建立后缀自动机和序列自动机
序列自动机：可以识别一个序列所有子序列的自动机 
想必学过自动机的各位都知道这个玩意怎么建，这里不再阐述
让后我们考虑这些询问
询问1：直接用SAM做类似LCS的做法求出A每个前缀和B匹配的最长距离，取最小+1
询问2：...]]></description><category></category></item><item><title><![CDATA[后缀数组SA-IS模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84062475</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84062475</guid><author>JacaJava</author><pubDate>Wed, 14 Nov 2018 10:43:44 +0800</pubDate><description><![CDATA[.
SAIS真的好快啊，在UOJ能卡进第二页
推荐几个讲的比较好的博客
链接1
链接2
链接3
和一篇讲了各种后缀数组算法的论文
Code:
#pragma GCC optimize(&quot;O3&quot;)
#pragma G++ optimize(&quot;O3&quot;)
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#include&amp;lt;algorithm&amp;gt;
...]]></description><category></category></item><item><title><![CDATA[自适应simpson积分模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84031828</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84031828</guid><author>JacaJava</author><pubDate>Tue, 13 Nov 2018 16:59:05 +0800</pubDate><description><![CDATA[.
好像还挺好写的
具体思路就是一个区间，判断一下两半积分和整体差值是否过大，如果很大那么分成两边继续递归，否则直接返回
（复杂度未知，常数很大）
#include&amp;lt;math.h&amp;gt;
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
#define db double
using namespace std;
db A,B,C,D,l,r,...]]></description><category></category></item><item><title><![CDATA[超级读入&输出优化]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/84025799</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/84025799</guid><author>JacaJava</author><pubDate>Tue, 13 Nov 2018 11:17:00 +0800</pubDate><description><![CDATA[.
mmapmmapmmap真的是黑科技，用了之后时间减半
但是输出还是只能靠writewritewrite，不知道为什么用mmapmmapmmap会RERERE
应该算是一个比较好的快速读写模板了吧，到时候再把输出也换成mmapmmapmmap
（以下代码均在LinuxLinuxLinux环境下编译，windowswindowswindows的g++g++g++不行）
#include&amp;lt;s...]]></description><category></category></item><item><title><![CDATA[51Nod1680 区间求和]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/83661816</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/83661816</guid><author>JacaJava</author><pubDate>Fri, 02 Nov 2018 21:29:37 +0800</pubDate><description><![CDATA[.题目点这里
大概是这么一个问题
∑k=1n∑i=1n−k+1∑j=i+k−1n区间前k大元素和\sum_{k=1}^n\sum_{i=1}^{n-k+1}\sum_{j=i+k-1}^n区间前k大元素和k=1∑n​i=1∑n−k+1​j=i+k−1∑n​区间前k大元素和
观察式子并加以变形
=∑i=1n∑j=in∑k=1j−i+1区间前k大元素和=\sum_{i=1}^n\sum_{j=i}^n...]]></description><category></category></item><item><title><![CDATA[序列求和V2]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/83415587</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/83415587</guid><author>JacaJava</author><pubDate>Fri, 26 Oct 2018 15:19:53 +0800</pubDate><description><![CDATA[.
题目：计算∑i=1nri∗ik\sum_{i=1}^nr^i*i^ki=1∑n​ri∗ik其中n≤109,k≤103n\le10^9,k\le10^3n≤109,k≤103
一个非常巧妙的转化，设
S(x)=∑i=1nri∗ixS(x)=\sum_{i=1}^nr^i*i^xS(x)=i=1∑n​ri∗ix
我们要求的就是S(k)S(k)S(k)
考虑将式子变形
S(k)=∑i=1nri∗ik...]]></description><category></category></item><item><title><![CDATA[配对堆模板]]></title><link>https://blog.youkuaiyun.com/JacaJava/article/details/83386098</link><guid>https://blog.youkuaiyun.com/JacaJava/article/details/83386098</guid><author>JacaJava</author><pubDate>Thu, 25 Oct 2018 20:42:10 +0800</pubDate><description><![CDATA[配对堆是一种可并堆
题意：两种操作，合并两个堆或者查询一个堆的最小值，n≤106n\leq 10^6n≤106
Pairing−HeapPairing-HeapPairing−Heap还挺好写的，不过并没有传说中那么快
这里没有Decrease−KeyDecrease-KeyDecrease−Key的代码，说一下大概怎么实现
额外记录一个FatherFatherFather域，执行Decrease...]]></description><category></category></item></channel></rss>