<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NephrenRuqInsania]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/devout_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; devout_]]></copyright><item><title><![CDATA[Concrete Mathematics 6.1 Stirling Number Identities]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/131157654</link><guid>https://blog.youkuaiyun.com/devout_/article/details/131157654</guid><author>devout_</author><pubDate>Sun, 11 Jun 2023 20:58:54 +0800</pubDate><description><![CDATA[n1m1​k∑​kn​km​6.151−k1−k1kn​n1m1​k∑​nk​mk​6.16−m11subsets A1​A2​⋯Am1​1∈A1​. Say CAi​i​A2​CA3​⋯CAm1​∣A1​∣−1A1​A2​CA3​⋯CAm1​choose m1​k​∣A1​∣−。]]></description><category></category></item><item><title><![CDATA[图染色问题的NP完全性证明]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/130201864</link><guid>https://blog.youkuaiyun.com/devout_/article/details/130201864</guid><author>devout_</author><pubDate>Mon, 17 Apr 2023 20:57:50 +0800</pubDate><description><![CDATA[首先我们引入同色边的概念，利用同色边我们可以方便的确定三种颜色中的一种，通过一个三元环确定三个颜色分别对应 T/F/O，随后利用 variable gadget 确定每一个 3-sat 变量的取值，对于每一个 clause gadget 输出的结果即三个输入的或，利用 OR gadget 实现，要求每一个 clause 的返回结果均为 true。赋值，是的一个布尔表达式的值为真，其中这个布尔表达式形如若干个 clause 的与，其中一个 clause 为三个变量（可能带非运算符）的或的形式。]]></description><category></category></item><item><title><![CDATA[[NOIO #2] 游戏]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/110519857</link><guid>https://blog.youkuaiyun.com/devout_/article/details/110519857</guid><author>devout_</author><pubDate>Thu, 03 Dec 2020 10:03:33 +0800</pubDate><description><![CDATA[首先有一个结论——二项式反演
用 f(n)f(n)f(n) 表示钦定选择了 nnn 个的方案数，  g(n)g(n)g(n) 表示实际选择了 nnn 个数的方案，那么有
f(n)=∑i=nm(−1)n−i(in)g(i)f(n)=\sum_{i=n}^m (-1)^{n-i}\binom{i}{n}g(i)f(n)=i=n∑m​(−1)n−i(ni​)g(i)
g(n)=∑i=nm(−1)n−i(in)f(i)g(n)=\sum_{i=n}^m (-1)^{n-i}\binom{i}{n}f(i)g(n)=]]></description><category></category></item><item><title><![CDATA[[CSP2019] 划分]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/110419098</link><guid>https://blog.youkuaiyun.com/devout_/article/details/110419098</guid><author>devout_</author><pubDate>Tue, 01 Dec 2020 07:58:27 +0800</pubDate><description><![CDATA[link
32pts
用 fi,jf_{i,j}fi,j​ 表示最后一段分段为 [i,j][i,j][i,j] 的最小复杂度
O(n3)\mathcal O(n^3)O(n3) 转移即可
64pts
观察发现，显然有当最后一段分段的大小最小的时候答案是最优的，所以记录大小最小的大小以及这个时候的dp值就可以 O(n2)\mathcal O(n^2)O(n2) 转移了。
84pts
我们可以用单调队列维护 2sumi−sumprei2sum_i-sum_{pre_i}2sumi​−sumprei​​ ，就可以]]></description><category></category></item><item><title><![CDATA[[NOIP2008]双栈排序]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/110418862</link><guid>https://blog.youkuaiyun.com/devout_/article/details/110418862</guid><author>devout_</author><pubDate>Tue, 01 Dec 2020 07:40:52 +0800</pubDate><description><![CDATA[link
考虑什么时候 (i,j)(i,j)(i,j) 可以被放到同一个栈里面
我们只需要考虑如果我们把 (i,j)(i,j)(i,j) 放一起后面会不会出现矛盾
假设有 i&lt;j&lt;ki&lt;j&lt;ki&lt;j&lt;k，观察每一种排列，只有当 ak&lt;ai&lt;aja_k&lt;a_i&lt;a_jak​&lt;ai​&lt;aj​ 的时候，是会出现问题的，我们不能构造一种方案满足这个条件
所以我们通过计算后缀最小值可以确定哪两个不能放在栈里面
然后我们判断这个图是不是二分图就可以]]></description><category></category></item><item><title><![CDATA[2020.11.29集训总结]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/110314534</link><guid>https://blog.youkuaiyun.com/devout_/article/details/110314534</guid><author>devout_</author><pubDate>Sun, 29 Nov 2020 16:07:53 +0800</pubDate><description><![CDATA[malkuth
description
称一个矩阵在模????意义下是神奇的，当且仅当它满足下面两个条件：1.该矩阵是一个只含0到????−1的整数的方阵；2.矩阵每行，每列的和在模????意义下相等。给定的????,????,????，请你求出模????意义下n阶神奇的矩阵中每行每列的和均等于????的不同矩阵的个数，两个矩阵不同当且仅当它们在至少某一位上的元素不同。由于答案较大，请你求出答案对 109+910^9+9109+9（一个质数）取模后的结果。
n,p,k≤109n,p,k\leq 10^9n,]]></description><category></category></item><item><title><![CDATA[[NOIp2016] 天天爱跑步]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/109367978</link><guid>https://blog.youkuaiyun.com/devout_/article/details/109367978</guid><author>devout_</author><pubDate>Thu, 29 Oct 2020 20:12:34 +0800</pubDate><description><![CDATA[显然，一个人的跑步路线可以看成是一段上行到lca，一段下行。
首先考虑上行，一个点xxx可以观察到(s,t)(s,t)(s,t)的条件是：
dep[s]−dep[x]=wxdep[s]-dep[x]=w_xdep[s]−dep[x]=wx​
移项：
dep[x]=wx+dep[x]dep[x]=w_x+dep[x]dep[x]=wx​+dep[x]
相当于树上差分之后维护子树里有起点的dep[x]dep[x]dep[x]
考虑下行，一个点xxx可以观察到(s,t)(s,t)(s,t)的条件是：
dis(s,]]></description><category></category></item><item><title><![CDATA[[QZSOJ4968]最大值]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/109245416</link><guid>https://blog.youkuaiyun.com/devout_/article/details/109245416</guid><author>devout_</author><pubDate>Fri, 23 Oct 2020 16:45:27 +0800</pubDate><description><![CDATA[description
给定 nnn 个数 {ai}\{a_i\}{ai​}，要求从中选出两个不同的数 x,yx,yx,y，使得 x&nbsp;op&nbsp;yx\ op\ yx&nbsp;op&nbsp;y 最大。
op=or,xor,andop=or,xor,andop=or,xor,and
n≤106,ai≤106n\leq 10^6,a_i\leq10^6n≤106,ai​≤106
solution

xorxorxor

我们对于所有的数二进制形式建一棵  trietrietrie，然后枚举一个]]></description><category></category></item><item><title><![CDATA[2020.10.7集训总结]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/108951793</link><guid>https://blog.youkuaiyun.com/devout_/article/details/108951793</guid><author>devout_</author><pubDate>Wed, 07 Oct 2020 16:24:33 +0800</pubDate><description><![CDATA[count
description
设矩阵 RRR 是由若干个正方形所组成的矩阵，定义函数 F(R)F(R)F(R) 为矩阵 RRR 的某一条对角线穿过的小正方形的个数。现在已知 F(R)=NF(R)=NF(R)=N，求可能的矩阵 RRR 的个数。
n≤109n\leq 10^9n≤109，数据随机生成
solution
设一个矩形 R=n×m,m≤nR=n\times m,m\leq nR=n×m,m≤n，显然他对角线经过了 gcd⁡(n,m)−1\gcd(n,m)-1gcd(n,m)−1 个格点，把他分]]></description><category></category></item><item><title><![CDATA[莫队二次离线]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/108245529</link><guid>https://blog.youkuaiyun.com/devout_/article/details/108245529</guid><author>devout_</author><pubDate>Wed, 26 Aug 2020 19:05:44 +0800</pubDate><description><![CDATA[模板
通常来说，满足以下条件的问题

可以莫队
转移复杂度不是O(1)O(1)O(1)

可以使用莫队二次离线优化
对于一个复杂度为 O(nnp)O(n\sqrt np)O(nn​p)，ppp 不是常数的莫队问题优化到复杂度为 O(nn+np)O(n\sqrt n+np)O(nn​+np)

对于模板题，显然暴力莫队的做法是O(nn(14k))O(n\sqrt n \binom{14}{k})O(nn​(k14​))的，显然炸飞
考虑优化，我们用 f(i,[l,r])f(i,[l,r])f(i,[l,r])]]></description><category></category></item><item><title><![CDATA[NOI2020同步赛爆零记&暑假划水总结]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/108186406</link><guid>https://blog.youkuaiyun.com/devout_/article/details/108186406</guid><author>devout_</author><pubDate>Sun, 23 Aug 2020 19:46:53 +0800</pubDate><description><![CDATA[大概从寒假开始都叫暑假吧
所以要从头开始
大概记录一下在学校划水的事吧
day -213(2020.1.17)
放寒假啦！开心
day -204(2020.1.26)
延期开学了
day -77(2020.6.1)
终于开学了…
然后我们一帮人中午就被 gu 放学之后找去谈话，说了说“训练计划”
然后 nls 把我扣在了食堂，等我过去的时候他们差不多都说完了…
于是啥东西都没听见
day -72(2020.6.6)
开学之后的第一次唯一一次训练
做的是 FJ 集训的题好像，反正三道暴力走人，被吊打了/dk
]]></description><category></category></item><item><title><![CDATA[2020.8.13集训]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107976831</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107976831</guid><author>devout_</author><pubDate>Thu, 13 Aug 2020 12:22:29 +0800</pubDate><description><![CDATA[math
description
设d(i)d(i)d(i)为iii的因数个数
给定n,mn,mn,m，求：
∑i=1n(−1)∑j=1md(i⋅j)\sum_{i=1}^n(-1)^{\sum_{j=1}^m d(i\cdot j)}i=1∑n​(−1)∑j=1m​d(i⋅j)
n≤107,m≤1014n\leq 10^7,m\leq 10^{14}n≤107,m≤1014
solution
发现我们只用关心有几个jjj可以让i⋅ji\cdot ji⋅j是完全平方数
设i=pq12i=pq_1^2i=pq]]></description><category></category></item><item><title><![CDATA[[BJOI2020] 主音识别]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107933327</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107933327</guid><author>devout_</author><pubDate>Tue, 11 Aug 2020 13:33:41 +0800</pubDate><description><![CDATA[咕咕咕的北京省选题
description
给定参数kkk,一个大小为mmm的集合{b1,b2,b3...bm}\{b_1,b_2,b_3...b_m\}{b1​,b2​,b3​...bm​}，一个长度为nnn的数列{ai}\{a_i\}{ai​}
定义f(x,ai)=[ai≡x( mod k)]+[∃1≤j≤m,ai≡x+bj( mod k)]f(x,a_i)=[a_i\equiv x(\bmod k)]+[\exist1\leq j\leq m,a_i\equiv x+b_j(\bmod k)]f(x,]]></description><category></category></item><item><title><![CDATA[2020.8.10集训]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107909508</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107909508</guid><author>devout_</author><pubDate>Mon, 10 Aug 2020 13:14:13 +0800</pubDate><description><![CDATA[matrix
description
给定两个长度为nnn的数列lll,ttt,分别作为n×nn\times nn×n的矩阵的第一列和第一行，其他位置的矩阵满足
Fi,j=a×Fi,j−1+b×Fi−1,jF_{i,j}=a\times F_{i,j-1}+b\times F_{i-1,j}Fi,j​=a×Fi,j−1​+b×Fi−1,j​
给定a,ba,ba,b，求Fn,nF_{n,n}Fn,n​
n≤105n\leq 10^5n≤105
solution
考虑一个数的贡献，li(i&gt;2)l_i(i]]></description><category></category></item><item><title><![CDATA[[国家集训队]Middle]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107898355</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107898355</guid><author>devout_</author><pubDate>Sun, 09 Aug 2020 19:22:23 +0800</pubDate><description><![CDATA[description
给定一个序列 sss，qqq次询问，每次询问所有左端点在 [a,b][a,b][a,b] ，右端点在 [c,d][c,d][c,d] 里面的区间的中位数的最大值，强制在线
subtask&nbsp;1:n,q≤100subtask\ 1:n,q\leq 100subtask&nbsp;1:n,q≤100
subtask&nbsp;2:n≤2000,m≤2.5×104subtask\ 2:n\leq 2000,m\leq 2.5\times 10^4subtask&nbsp;2:n≤2]]></description><category></category></item><item><title><![CDATA[[NOI2018] 归程]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107886384</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107886384</guid><author>devout_</author><pubDate>Sat, 08 Aug 2020 21:48:07 +0800</pubDate><description><![CDATA[关于spfa

他死了


问题可以转化成，我们在所有海拔&gt;p&gt;p&gt;p的边组成的图中，vvv所在的连通块中，距离111最近的一个点的距离
后半部分可以用spfa dijkstra解决
前面的这个东西，我们可以对于每一条边的海拔排序，从大到小建立可持久化并查集，维护一下并查集的min，相当于是可持久化带权并查集
复杂度O(nlog⁡2n)O(n\log^2n)O(nlog2n)，实际得分在909090分左右
考虑优化，我们发现，每次合并两个可持久化带权并查集找父亲的时候，可以不用每次暴力找爸]]></description><category></category></item><item><title><![CDATA[2020.8.7集训]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107861535</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107861535</guid><author>devout_</author><pubDate>Fri, 07 Aug 2020 14:33:28 +0800</pubDate><description><![CDATA[奇怪的道路
description
小宇从历史书上了解到一个古老的文明。这个文明在各个方面高度发达，交通方面也不例外。考古学家已经知道，这个文明在全盛时期有n座城市，编号为1⋯n1\cdots n1⋯n。mmm 条道路连接在这些城市之间，每条道路将两个城市连接起来，使得两地的居民可以方便地来往。一对城市之间可能存在多条道路。
据史料记载，这个文明的交通网络满足两个奇怪的特征。首先，这个文明崇拜数字K，所以对于任何一条道路，设它连接的两个城市分别为  uuu 和 vvv，则必定满足 1≤∣u−v∣≤K1\le]]></description><category></category></item><item><title><![CDATA[[HNOI2012] 矿场搭建]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107760698</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107760698</guid><author>devout_</author><pubDate>Mon, 03 Aug 2020 11:59:30 +0800</pubDate><description><![CDATA[显然需要求一下点双
然后枚举每一个点双，考虑进行分类讨论
如果这一个联通块里面只有这一个点双，也就是这个点双里面没有割点，那么我们至少需要建造两个出口，才能保证能跑出去（因为有可能选的那个塌了）
如果这个点双里面有一个割点，那么有两种情况，一种是割点塌了，这样我们需要选出1个点，或者割点没塌，这样我们就可以跑到另一个点双里面去了，这样需要选出1个点
当这个点双里面有两个割点，那么我们最坏情况是一个割点塌了，但是我们还是能跑到另一个里面。
这样我们就可以解决了
#include &lt;bits/stdc++]]></description><category></category></item><item><title><![CDATA[[NOIp2018] 摆渡车]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107731898</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107731898</guid><author>devout_</author><pubDate>Sat, 01 Aug 2020 15:49:10 +0800</pubDate><description><![CDATA[普及组考斜率优化
考虑dpdpdp
fif_ifi​表示在iii时刻发车的最小等待时间
那么我们可以得到转移方程
fi=min⁡0≤j≤i−m{fj+(cnti−cntj)i−(sumi−sumj)}f_i=\min\limits_{0\leq j\leq i-m} \{f_j+(cnt_i-cnt_j)i-(sum_i-sum_j)\}fi​=0≤j≤i−mmin​{fj​+(cnti​−cntj​)i−(sumi​−sumj​)}
其中cnt,sumcnt,sumcnt,sum分别是学生个数和学生到达时]]></description><category></category></item><item><title><![CDATA[2020.7.28集训]]></title><link>https://blog.youkuaiyun.com/devout_/article/details/107638139</link><guid>https://blog.youkuaiyun.com/devout_/article/details/107638139</guid><author>devout_</author><pubDate>Tue, 28 Jul 2020 16:07:40 +0800</pubDate><description><![CDATA[string
description
小 A 最近喜欢上了一个字母游戏，这个游戏的大意是这样的：有 nnn 个无限长的循环字符串，所谓循环字符串，就是由某一个子串重复叠加而成。现在想知道最早在哪一位，这 nnn 个字符串位于该位的字母相同。小 A 对于简单难度的关卡简直手到擒来，但是对于困难难度的关卡他就一筹莫展了。这时他想到了你，一个机智的程序员，他希望你能够帮他编写程序求出答案。我们保证该子串中的字母互不重复,但区分大小写。
n≤3×105n\leq 3\times 10^5n≤3×105
soluti]]></description><category></category></item></channel></rss>