<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zjy_code的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zjy_code</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zjy_code]]></copyright><item><title><![CDATA[扩展Lucas总结]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/124675510</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/124675510</guid><author>zjy_code</author><pubDate>Mon, 09 May 2022 21:24:58 +0800</pubDate><description><![CDATA[类比：

类比一下所有可以用来求组合数的方法：

预处理：可以有效处理O(1e6)数据，弊端是不能存在模数不为质数和中的情况，p为模数
	帕斯卡恒等式：可以处理O(1e3)的数据，依靠dp，没有模数限制
	Lucas定理：可以求n，m较大而p较小的情况，递归在O()O(?)来求，弊端是模数一定是质数
	扩展Lucas：跟lucas无关，是中国剩余定理+预处理阶乘，注意，在题中保证p不是质数而且还很大的情况下，能保证p的质因数幂在1e5~6范围内，考虑使用扩展Lucas
补充一个：BSGS是求：最小正整数x.]]></description><category></category></item><item><title><![CDATA[中国剩余定理]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/124641303</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/124641303</guid><author>zjy_code</author><pubDate>Sat, 07 May 2022 23:11:19 +0800</pubDate><description><![CDATA[CRT：





证明的话显然，在(mod mi)中才会有Mi*ti=1的意义，而不在(mod mi)情况下时，会整除，因为前者是除以外所有的的乘积，故，不会产生贡献，最终只有




]]></description><category></category></item><item><title><![CDATA[求区间元素种类数的几种方法]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/124574576</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/124574576</guid><author>zjy_code</author><pubDate>Wed, 04 May 2022 18:19:23 +0800</pubDate><description><![CDATA[P1972 [SDOI2009] HH的项链https://www.luogu.com.cn/problem/P1972

本博客将以该题目为例进行介绍

方法1：树状数组

树状数组需要结合离散化处理，我们观察到一个性质，随着右端点的右移，每一种元素的贡献位置（这里指存在贡献的位置，如：1 2 3 1 这组数据，内1元素的贡献可以用4位置提供1次贡献，而1位置的元素贡献为0），因为右端点不断右移，所以不需要考虑查询区间存在如下情况：

在上图中，假设7位置的1提供了贡献，此时肯定右端点位置，故上图区间..]]></description><category></category></item><item><title><![CDATA[点分治解析]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/121985210</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/121985210</guid><author>zjy_code</author><pubDate>Thu, 16 Dec 2021 22:41:43 +0800</pubDate><description><![CDATA[前言
	
最近碰见了淀粉质。想系统学学，虽然也学不懂。


	算法概述
	
首先明确用途：在大规模处理树上路径的问题时，可以考虑淀粉质

淀粉质（点分治 的主要思想继承了分治的思想，相当于每一次拆开了一棵树（子树），然后不断重复操作，因此，点分治优化的思路就来自于选取的树根的最大深度最小


	引理 树的重心
	
关于树的重心，贴个oiwiki

这里我们应用的性质即为性质第一条

首先考虑为什么需要树的重心，我们每次分裂出子树，假设子树退化成链，结合线段树的思想，我们知道应该选取尽量到各个........]]></description><category></category></item><item><title><![CDATA[NOIP2021总结]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/121713132</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/121713132</guid><author>zjy_code</author><pubDate>Sat, 04 Dec 2021 11:44:15 +0800</pubDate><description><![CDATA[前言
	
不得不说，noip2021还是较为友好的，虽然自己答的稀碎挂一堆分但还是侥幸没有AFO


	考试过程
	
騲

进教学楼心态就炸了

忘带核酸报告辣，dayu帮打的（ 感动

进错考场辣，各种证件协议交错老师只能自己追回来

进了考场，wc为毛坐门口啊，冻死我了

梅开三度了啊騲

开题，T1不是很简单嘛。直接预处理就完了，结果当时想当然7数密度比较小就直接没预处理答案，二分之后直接跑的，感觉均摊不错应该nlogn左右吧，结果T了。

当时想到预处理答案结果脑子一热胡了。 狂跌30pts
...]]></description><category></category></item><item><title><![CDATA[差分约束系统]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119794997</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119794997</guid><author>zjy_code</author><pubDate>Thu, 19 Aug 2021 13:49:01 +0800</pubDate><description><![CDATA[算法简介
	
差分约束系统是一种特殊的n元一次不等式，包含n个变量，以及m个约束条件，每个约束条件由两个变量做差构成的，形如：，其中是常数，

常规约束条件为：
]]></description><category></category></item><item><title><![CDATA[博弈论基础]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119673118</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119673118</guid><author>zjy_code</author><pubDate>Fri, 13 Aug 2021 13:58:29 +0800</pubDate><description><![CDATA[巴什博弈
	
必胜策略，第一回合消去余数，此后每次保持两个人轮流取一回合的石子数量维持在


#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cmath&gt;
using namespace std;
int n,m; 
int main()
{
	scanf("%d%d",&amp;n,&amp;m);
	if(n%(m+1)) printf("Second");
	else printf("First");
	return ...]]></description><category></category></item><item><title><![CDATA[线段树合集整理]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119600010</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119600010</guid><author>zjy_code</author><pubDate>Wed, 11 Aug 2021 11:43:06 +0800</pubDate><description><![CDATA[作为oier刷题是碰见的大数据结构的集合
作者水平有限，如有不足欢迎批评指正
会随时更新其中的题目]]></description><category></category></item><item><title><![CDATA[欧几里得及其扩展]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119530422</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119530422</guid><author>zjy_code</author><pubDate>Mon, 09 Aug 2021 10:53:14 +0800</pubDate><description><![CDATA[辗转相除法
	
用途：求解a，b两数的最大公约数

定理： 前提：

语言表述为：两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数

有了这个定理，可在几乎是log的时间复杂度内求得最大公约数


int gcd(int a,int b)
{
    if(!b) return a;
    return gcd(b,a%b);
}

其定理延申：我们知道

而我们知道，，

则要求，等价于求

因此，这样一看，如果求多个数的最大公约，可化成差分的形式



所以一个树状数组...]]></description><category></category></item><item><title><![CDATA[区间二分法]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119242369</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119242369</guid><author>zjy_code</author><pubDate>Fri, 30 Jul 2021 12:00:46 +0800</pubDate><description><![CDATA[二分查找
	

while(l&lt;=r)
{
	int mid=(l+r)/2;
	if(val[mid]==x) return mid;
	if(val[mid]&lt;x) l=mid+1;
	else r=mid-1;
}

很基础的板子，没啥可说

保证答案处于以内，循环一般以结束，每次二分的中间值会归于左半段或右半段

在单调递增区间中查找第一个满足的数(即的数中最小的一个)

while(l&lt;r)
{
    int mid=(l+r)&gt;&gt;1;/*向下取整*/
   ...]]></description><category></category></item><item><title><![CDATA[等比数列求和]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119209812</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119209812</guid><author>zjy_code</author><pubDate>Thu, 29 Jul 2021 14:27:57 +0800</pubDate><description><![CDATA[引入：
	
先来看一个问题，求的所有约数之和；

解决思路如下：首先将分解质因数，表示为，其中均为质数，因此表示为：。此时我们将的所有约数表示为集合，从这个约数中选出个数的乘积即为一个约数。

此时我们根据乘法分配律反推：所有约数之和为：

而如何求解每一对括号内的等比数列和？


	正文
	
等比数列求和通项公式：

注意，如果解决此类问题，对于除法应为在的条件下做同余，需要用到逆元，还需要关注是否为素数

而这里问题来了，我们想用更快的没有除法的方法求等比数列和

考虑分治法：如果为奇数，

...]]></description><category></category></item><item><title><![CDATA[网络流和二分图初步]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119153318</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119153318</guid><author>zjy_code</author><pubDate>Tue, 27 Jul 2021 22:30:48 +0800</pubDate><description><![CDATA[杂谈
	
初步涉猎网络流，谈谈自己的理解，蒟蒻会不定期补充的 qwq


	网络流问题
	
	
	最大流问题：
	
先举一个运输方案的例子 ：

可行方案：

总运输量5百吨。 显而易见一个可行方案有如下性质：

而现在的问题转变为求Vs到Vt的最大运输量

概念概述：




	EK算法

	
	












感性理解则为：增广的流量一定要符合短板效应，即等于路径上残量的最小值。



EK算法具体实现：标程


#include &lt;cstdio&gt;
#include &...]]></description><category></category></item><item><title><![CDATA[欧拉定理及FLT综合]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119152346</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119152346</guid><author>zjy_code</author><pubDate>Tue, 27 Jul 2021 20:13:16 +0800</pubDate><description><![CDATA[欧拉定理
	



]]></description><category></category></item><item><title><![CDATA[7-21模拟赛T2]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/119150669</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/119150669</guid><author>zjy_code</author><pubDate>Tue, 27 Jul 2021 18:49:33 +0800</pubDate><description><![CDATA[题目地址


	考点：
	
最大公约数的性质：满足辗转相除法的性质推广多元
]]></description><category></category></item><item><title><![CDATA[逆元求解方法]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/118786075</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/118786075</guid><author>zjy_code</author><pubDate>Fri, 16 Jul 2021 10:12:46 +0800</pubDate><description><![CDATA[费马小定理求逆元

int quick_pow(int a,int b)
{
	int ans=1%mod;
	int tmp=a%mod;
	while(b)
	{
		if(b&amp;1) ans=(ll)(ans*tmp)%mod;
		tmp=(ll)(tmp*tmp)%mod;
		b&gt;&gt;=1;
	}
	return ans%mod;
}
int Inv(int x)
{
	return quick_pow(x,mod-2);
}

o(n+log(n))预处理逆元



void.]]></description><category></category></item><item><title><![CDATA[NOIP常用技巧]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/118405031</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/118405031</guid><author>zjy_code</author><pubDate>Fri, 02 Jul 2021 09:22:38 +0800</pubDate><description><![CDATA[因为cmath库中的log2函数效率不高，通常可以使用O(n)递推预处理出1-n这n种区间长度各自对应的k值（区间[x,y]，k=log2(y-x+1)），具体的，设log[d]表示log2(d)向下取整，则log[d]=log[d/2]+1
]]></description><category></category></item><item><title><![CDATA[6月模拟赛题解 序列]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/106892789</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/106892789</guid><author>zjy_code</author><pubDate>Sun, 21 Jun 2020 22:57:50 +0800</pubDate><description><![CDATA[题目描述
原题地址
题解

标程
#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#include&lt;cmath&gt;
#define maxn 100005
typedef long long ll;
using namespace std;
ll arr[maxn],ans[maxn],pre[maxn],sum[maxn];
ll now=0,cnt]]></description><category></category></item><item><title><![CDATA[6月模拟赛题解 积木]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/106892492</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/106892492</guid><author>zjy_code</author><pubDate>Sun, 21 Jun 2020 22:51:29 +0800</pubDate><description><![CDATA[题目描述
原题地址
题解
对于前 20% 的数据，可以直接枚举答案，用搜索判断可不可行
对于 100% 的数据。为了方便，我们仅考虑 gcd(a,b) = 1 的情形，若 gcd(a,b)! = 1，则视每 厘米为 厘米。
此时a,b互质，稍加推测可以发现每次答案都为 a + b - 1。
下面证明这个结论。
引入一个概念 完全剩余系，若整数 a0,a1,···,am-1 满足 ai ≡ i( mod m) ,则称a0, a1, …,am-1,为模 m 的一个完全剩余系.
分两步证明这个结论.
第一步,证明]]></description><category></category></item><item><title><![CDATA[洛谷P1191 矩形]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/88375044</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/88375044</guid><author>zjy_code</author><pubDate>Sun, 10 Mar 2019 09:45:09 +0800</pubDate><description><![CDATA[题目描述

给出一个n×nn \times nn×n的矩阵，矩阵中，有些格子被染成白色，有些格子被染成黑色，现要求矩阵中白色矩形的数量

输入输出格式

输入格式：



第一行，一个整数nnn，表示矩形的大小。

接下来nnn行，每行nnn个字符，这些字符为“WWW”或“BBB”。其中“WWW”表示白格，“BBB”表示黑格。



输出格式：



一个正整数，为白色矩形数量



输入...]]></description><category></category></item><item><title><![CDATA[洛谷P1541 乌龟棋]]></title><link>https://blog.youkuaiyun.com/zjy_code/article/details/88375027</link><guid>https://blog.youkuaiyun.com/zjy_code/article/details/88375027</guid><author>zjy_code</author><pubDate>Sun, 10 Mar 2019 09:38:19 +0800</pubDate><description><![CDATA[传送门

题目背景

小明过生日的时候，爸爸送给他一副乌龟棋当作礼物。

题目描述

乌龟棋的棋盘是一行NNN个格子，每个格子上一个分数（非负整数）。棋盘第1格是唯一的起点，第NNN格是终点，游戏要求玩家控制一个乌龟棋子从起点出发走到终点。

乌龟棋中MMM张爬行卡片，分成4种不同的类型（MMM张卡片中不一定包含所有444种类型的卡片，见样例），每种类型的卡片上分别标有1,2,3,41,2,3,4...]]></description><category></category></item></channel></rss>