<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Defener的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Defener</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Defener]]></copyright><item><title><![CDATA[JOI 2022 Final]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/123932903</link><guid>https://blog.youkuaiyun.com/Defener/article/details/123932903</guid><author>Defener</author><pubDate>Sun, 03 Apr 2022 13:13:37 +0800</pubDate><description><![CDATA[星际蛋糕推销
先算出每一段蛋糕的长度，每次询问在原序列上二分查找或双指针即可。
时间复杂度 O(N+Q)O(N+Q)O(N+Q)，空间复杂度 O(N)O(N)O(N)
#include&lt;stdio.h&gt;
#include&lt;algorithm&gt;
int a[200001];
long long sum[200001];
int main(){
	int n,q,d;
	scanf("%d",&amp;n);
	for(register int i=1;i&lt;=n;i++){
		s]]></description><category></category></item><item><title><![CDATA[字符串题目集]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/123152010</link><guid>https://blog.youkuaiyun.com/Defener/article/details/123152010</guid><author>Defener</author><pubDate>Sat, 26 Feb 2022 16:45:47 +0800</pubDate><description><![CDATA[题目：
SCOI2012 喵星球上的点名
HAOI2018 字串覆盖
划分成回文串
ZJOI2015 诸神眷顾的幻想乡
Alphabetic Tree
Little Goth
Asterisk Substrings
SCOI2012 喵星球上的点名
HAOI2018 字串覆盖
划分成回文串
ZJOI2015诸神眷顾的幻想乡
Alphabetic Tree
Little Goth
Asterisk Substrings

...]]></description><category></category></item><item><title><![CDATA[省选前的杂题]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/123010236</link><guid>https://blog.youkuaiyun.com/Defener/article/details/123010236</guid><author>Defener</author><pubDate>Fri, 18 Feb 2022 20:51:20 +0800</pubDate><description><![CDATA[题目：
Reunion
三角形
异或图
shallot加强版
清扫银河
Clamp Paths on Tree
Permutation Deletion
金枪鱼付款
金枪鱼食用
Reunion
三角形
异或图
shallot加强版
维护正整数的可重集合，支持插入、删除操作，并且每次操作后都要查询子集异或和的最大值。输入的数要异或上次询问的答案。
1⩽n⩽5000001 \leqslant n \leqslant 5000001⩽n⩽500000
时间限制6s，空间限制512MB。
清扫银河
Clamp Pa]]></description><category></category></item><item><title><![CDATA[计算几何收录]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/122806788</link><guid>https://blog.youkuaiyun.com/Defener/article/details/122806788</guid><author>Defener</author><pubDate>Mon, 07 Feb 2022 14:16:11 +0800</pubDate><description><![CDATA[题目：
HNOI2016 矿区
SDOI2016 平凡的骰子
JSOI2018 绝地反击
HNOI2004 最佳包裹
SCOI2015 小凸想跑步
APIO2018 选圆圈
椭圆面积异或并
HNOI2016 矿区
首先将平面图转成对偶图。将每个点为端点的边按极角排序，然后按逆时针顺序遍历每个区域，算出面积并编号，求出对偶图。
求出对偶图的生成树，一个原图的块在生成树上仍然是联通块，遍历询问的边时判断询问的联通块和该边在树上的关系即可找到对应子树的贡献。
时间复杂度 O(nlog⁡2n+∑d)O(n \log]]></description><category></category></item><item><title><![CDATA[冬令营系列题目]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/122789077</link><guid>https://blog.youkuaiyun.com/Defener/article/details/122789077</guid><author>Defener</author><pubDate>Sat, 05 Feb 2022 12:36:51 +0800</pubDate><description><![CDATA[题目：
WC2020 猜数游戏
WC2020 选课
WC2020 猜数游戏
如果猜数 xxx 可以得到 yyy，则从 xxx 连一条有向边到 yyy。如果事先建好了图，则可以简单算出每个数对答案做出贡献的概率。由于题目的特殊性质，模数一定有原根，将数按照阶分类，每一类中的数可以相互到达，类之间为一个有向无环图。因此算出每个数的阶然后分类即可。
时间复杂度 O(nP)O(n \sqrt P)O(nP​)，空间复杂度 O(n+P)O(n+\sqrt P)O(n+P​)
#include&lt;iostream&]]></description><category></category></item><item><title><![CDATA[NOIP模拟系列题目]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/120983350</link><guid>https://blog.youkuaiyun.com/Defener/article/details/120983350</guid><author>Defener</author><pubDate>Tue, 26 Oct 2021 23:28:18 +0800</pubDate><description><![CDATA[题目列表：
树
树
求大小为 nnn 的所有带标号无根树的直径的和模 PPP 的值。
1⩽n⩽500,108⩽P⩽21474836471 \leqslant n \leqslant 500,10^8 \leqslant P \leqslant 21474836471⩽n⩽500,108⩽P⩽2147483647
时间限制4s，空间限制1GB
首先枚举树的直径。如果直径为偶数，则树可以看做两棵

...]]></description><category></category></item><item><title><![CDATA[NOI2016 网格]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/120464598</link><guid>https://blog.youkuaiyun.com/Defener/article/details/120464598</guid><author>Defener</author><pubDate>Fri, 24 Sep 2021 23:02:20 +0800</pubDate><description><![CDATA[题面
答案显然在−1,0,1,2-1,0,1,2−1,0,1,2之中，因为如果不是−1,0,1-1,0,1−1,0,1的话一定可以在一个角落的位置放两个蛐蛐达成目的。
若答案为−1-1−1，则跳蚤数量小于222或者两个跳蚤不相邻。
若答案不为−1-1−1，则将相邻的跳蚤连边，若图不连通则答案为000，若图连通且存在割点则答案为111，否则答案为222。
实际上跳蚤数量很多，直接连边不现实。将所有蛐蛐周围的八个跳蚤取出，并取出其所在行、所在列最靠边的四个跳蚤，再在整个矩形的四个角每个角取出四个跳蚤。把取出的跳]]></description><category></category></item><item><title><![CDATA[三维空间曼哈顿最小生成树]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/120123278</link><guid>https://blog.youkuaiyun.com/Defener/article/details/120123278</guid><author>Defener</author><pubDate>Sun, 05 Sep 2021 23:17:03 +0800</pubDate><description><![CDATA[题面
二维空间最小生成树的解决方法是以每个点为中心将二维平面分成米字型的八个区域，在每个区域里求出距离最近的点连边。这样做的原理是每个区域满足中心点与更远的点连边不优。
同样地，将三维空间每个卦限划分为四个三棱锥型区域，中心点在每个区域中找最近点连边。划分方式见下图：

图中1,2,3,4为四个三棱锥区域。
每个三棱锥区域都可以用三个面来描述，因此可以转为三维偏序限制。对于三维偏序问题，用CDQ分治即可。
时间复杂度 O(nlog⁡22n)O(n \log_2^2n)O(nlog22​n)，空间复杂度 O(]]></description><category></category></item><item><title><![CDATA[多校2021记录]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/119169454</link><guid>https://blog.youkuaiyun.com/Defener/article/details/119169454</guid><author>Defener</author><pubDate>Wed, 28 Jul 2021 09:31:34 +0800</pubDate><description><![CDATA[题目：
I love playing games
I love playing games
如果双方到终点最短路长度不同或能到终点的情况不同，则可以直接判出胜利方。若最短路长度相同，则先手不会败，而且还会尝试使后手失败；后手不会胜，会尝试得到平局。
设 fi,jf_{i,j}fi,j​ 为先手在 iii，后手在 jjj 的结局。可以通过 i,ji,ji,j 距离终点的最短路判断出当前该谁移动。
#include&lt;stdio.h&gt;
#include&lt;vector&gt;
#include&l]]></description><category></category></item><item><title><![CDATA[NOI模拟赛记录]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/118764922</link><guid>https://blog.youkuaiyun.com/Defener/article/details/118764922</guid><author>Defener</author><pubDate>Thu, 15 Jul 2021 18:06:14 +0800</pubDate><description><![CDATA[题目:
差不多得了
模拟
计算几何
差不多得了
给定平面内 nnn 个点坐标为 (xi,yi)(x_i,y_i)(xi​,yi​)，求每个点到其他点的距离之和。要求精度达到10−410^{-4}10−4
1⩽n⩽2000001 \leqslant n \leqslant 2000001⩽n⩽200000
0⩽xi,yi⩽1090 \leqslant x_i,y_i \leqslant 10^90⩽xi​,yi​⩽109
时间限制1s，空间限制512MB
由于一条线段在各个方向的直线上的投影长度的积分与原长成]]></description><category></category></item><item><title><![CDATA[最大流最小割费用流线性规划模拟费用流保序回归]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117969189</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117969189</guid><author>Defener</author><pubDate>Wed, 16 Jun 2021 23:08:16 +0800</pubDate><description><![CDATA[题面
对每个塔，将它攻击的范围用有向边串起来，割掉一条边表示选择对应的点。将流量赋为最大可能值减去该位置的值即可。对于炮弹轨迹不能相交的限制，在一条链上对应位置连一条有向边流量为正无穷到另一条链上对应的点即可，并将另一条链翻转。
时间复杂度 O(n3m3)O(n^3m^3)O(n3m3)，空间复杂度 O(n2m2)O(n^2m^2)O(n2m2)
#include&lt;stdio.h&gt;
#include&lt;queue&gt;
using namespace std;
#define R regi]]></description><category></category></item><item><title><![CDATA[单位根反演 小猪佩奇学数学]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117854747</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117854747</guid><author>Defener</author><pubDate>Sat, 12 Jun 2021 20:18:25 +0800</pubDate><description><![CDATA[题面
一个比较纯粹的推式子题目，第一步先将整除拆开：
∑i=0n(ni)pi1k(i−imod  k)\sum_{i=0}^n \binom{n}{i} p^i \frac{1}{k}(i-i \mod k)∑i=0n​(in​)pik1​(i−imodk)
拆开括号并枚举余数：
1k(∑i=0n(ni)pii−(ni)pi∑j=0k−1[(i−j)mod  k=0]j)\frac{1}{k}(\sum_{i=0}^n \binom{n}{i} p^i i-\binom{n}{i}p^i \sum_{j=0]]></description><category></category></item><item><title><![CDATA[Atcoder AGC047 E Product Simulation]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117754235</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117754235</guid><author>Defener</author><pubDate>Wed, 09 Jun 2021 21:15:13 +0800</pubDate><description><![CDATA[题面
由于不知道 A,BA,BA,B，且操作总数的限制，需要用类似快速乘的方式，将 A,BA,BA,B 拆为 log⁡2A\log_2Alog2​A 个二进制位，最后进行卷积即可。
首先要召唤出一个111。只要让 AAA 与 A+BA+BA+B 比较即可。当 A,BA,BA,B 有一个为 000 时，再或一个 BBB 与 A+BA+BA+B 比较即可。当 A=B=0A=B=0A=B=0 时无法召唤出111且不需要111。
有了111之后，就可以倍增得到所有 2i2^i2i 的值。记录变量 ccc 表示当前拆]]></description><category></category></item><item><title><![CDATA[Atcoder AGC044 E Random Pawn]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117753699</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117753699</guid><author>Defener</author><pubDate>Wed, 09 Jun 2021 20:43:30 +0800</pubDate><description><![CDATA[题面
首先有一个很简单的想法，设 fif_ifi​ 为从第 iii 个位置出发的最大收益，决策得到：
fi=max⁡(Ai,12(fi−1+fi+1)−Bi)f_i=\max(A_i,\frac{1}{2}(f_{i-1}+f_{i+1})-B_i)fi​=max(Ai​,21​(fi−1​+fi+1​)−Bi​)
这里的下标均在模 nnn 意义下。由于收益只会来自于 AAA，所以对于 AAA 最大的 iii 一定有 fi=Aif_i=A_ifi​=Ai​。由此可以将环拆为链。
当 Bi=0B_i=0Bi​]]></description><category></category></item><item><title><![CDATA[牛客挑战赛49 G Ok起飞]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117636556</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117636556</guid><author>Defener</author><pubDate>Sun, 06 Jun 2021 21:03:08 +0800</pubDate><description><![CDATA[由于原图是仙人掌，可以将一个简单环中流量最小的边删掉，并让该环中剩下的边加上该边的流量，最终形成一棵树。类似于瓶颈树，将边按流量排序，按流量从大到小的顺序加入。将异或的贡献拆位，维护每个连通块每个二进制位为000和111的点个数即可计算答案。
#include&lt;stdio.h&gt;
#include&lt;vector&gt;
#include&lt;set&gt;
#include&lt;map&gt;
#include&lt;algorithm&gt;
using namespace std;
]]></description><category></category></item><item><title><![CDATA[牛客挑战赛48 F 小丑生产值]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117636408</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117636408</guid><author>Defener</author><pubDate>Sun, 06 Jun 2021 20:55:55 +0800</pubDate><description><![CDATA[有一个很显然的结论，一个周期串一点是一个本原平方串，否则字典序不优。所以先进行一次Lyndon分解，求出以每个字符开头的最短本原平方串，最后求前缀最小串即可。中途求字符串LCS、LCP以及比大小都可以用二分哈希来实现。
时间复杂度 O(nlog⁡2n+m)O(n \log_2n +m)O(nlog2​n+m)，空间复杂度 O(n)O(n)O(n)
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#define R register int
#define C]]></description><category></category></item><item><title><![CDATA[拟阵深造 遗忘的记忆]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117302521</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117302521</guid><author>Defener</author><pubDate>Wed, 26 May 2021 19:49:07 +0800</pubDate><description><![CDATA[拟阵
一个集合 PPP 是拟阵的充要条件为：

ϕ∈P\phi \in Pϕ∈P。
对于任意的集合 A,BA,BA,B 满足 A∈P,B⊂AA \in P,B \subset AA∈P,B⊂A，一定有 B∈PB \in PB∈P。
对于任意的集合 A,BA,BA,B 满足 ∣A∣&gt;∣B∣|A|&gt;|B|∣A∣&gt;∣B∣，则一定存在元素 x∈∁ABx \in \complement_A^Bx∈∁AB​ 满足 B⋂{x}∈PB \bigcap \{x \} \in PB⋂{x}∈P。

拟阵交
现]]></description><category></category></item><item><title><![CDATA[PKUSC 2021]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/117202243</link><guid>https://blog.youkuaiyun.com/Defener/article/details/117202243</guid><author>Defener</author><pubDate>Sun, 23 May 2021 23:24:32 +0800</pubDate><description><![CDATA[求和变换
给定一大小为 n×nn \times nn×n 的矩阵 MMM，每次变换将 Mi,jM_{i,j}Mi,j​ 变为当前的 ∑k=0n−1Mi,k+Mk,j\sum_{k=0}^{n-1}M_{i,k}+M_{k,j}∑k=0n−1​Mi,k​+Mk,j​。求原矩阵变换 ttt 次的结果，每个位置的答案对 PPP 取模。
1⩽n⩽1000,0⩽t⩽109,2⩽P⩽1091 \leqslant n \leqslant 1000,0 \leqslant t \leqslant 10^9,2 \leqsl]]></description><category></category></item><item><title><![CDATA[Codeforces 1299 D 环游世界]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/116592028</link><guid>https://blog.youkuaiyun.com/Defener/article/details/116592028</guid><author>Defener</author><pubDate>Mon, 10 May 2021 12:11:27 +0800</pubDate><description><![CDATA[题面
对于图上路径异或问题，先抓一棵生成树，对于每条非树边算出接在树上形成的环异或值，将这些值加入线性基中求解。
这里同样的做法，在选生成树时优先选与111号点相连的边。对于非树边分情况讨论：

存在点 x,yx,yx,y，x,y,1x,y,1x,y,1 中两两有连边。先将 x,yx,yx,y 子树内的非树边加入线性基，若保留 1,x1,x1,x 之间的边或 1,y1,y1,y 之间的边，则该线性基最终会保留下来。若保留这两条边，则 x,yx,yx,y 之间的边也会保留下来。
直接将非树边加入线性基即可。
]]></description><category></category></item><item><title><![CDATA[ZJOI 2020 序列]]></title><link>https://blog.youkuaiyun.com/Defener/article/details/115335937</link><guid>https://blog.youkuaiyun.com/Defener/article/details/115335937</guid><author>Defener</author><pubDate>Tue, 30 Mar 2021 21:27:52 +0800</pubDate><description><![CDATA[题面
首先，前两个数一定要被清零，分为三种情况讨论：

a1=0a_1=0a1​=0，直接跳过。
a2=0a_2=0a2​=0，从 111 位置发出 a1a_1a1​ 个只减奇数位置的区间，左端点为 111，右端点待定。
a2&gt;0a_2&gt;0a2​&gt;0，从 111 位置发出 a1a_1a1​ 个完整的区间，左端点为 111，右端点待定。

对于位置 i−1i-1i−1 与 iii 类似讨论。设现在还有 AAA 个右端点待定的完整区间数量，要经过 iii 位置的不完整区间数量为 BBB，另一种]]></description><category></category></item></channel></rss>