<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WedsonLin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WedsonLin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WedsonLin]]></copyright><item><title><![CDATA[Codeforces Educational Codeforces Round 106 /D. The Number of Pairs]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/115049869</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/115049869</guid><author>WedsonLin</author><pubDate>Sun, 21 Mar 2021 15:33:57 +0800</pubDate><description><![CDATA[Codeforces Educational Codeforces Round 106 /D. The Number of Pairs
D. The Number of Pairs
题意：对于1≤c,d,x≤1e71\le c,d,x\le1e71≤c,d,x≤1e7，找出满足c⋅lcm(a,b)−d⋅gcd⁡(a,b)=xc\cdot lcm(a,b)-d\cdot\gcd{(a,b)}=xc⋅lcm(a,b)−d⋅gcd(a,b)=x的(a,b)(a,b)(a,b)的对数。
设g=gcd⁡(a,b)g=]]></description><category></category></item><item><title><![CDATA[Codeforces Round #707 (Div. 2, based on Moscow Open Olympiad in Informatics)/D]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/114841265</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/114841265</guid><author>WedsonLin</author><pubDate>Mon, 15 Mar 2021 17:31:23 +0800</pubDate><description><![CDATA[Codeforces Round #707 (Div. 2, based on Moscow Open Olympiad in Informatics)/D
D.Two chandeliers
题意：给出两个无限循环序列A,B以及整数k，找出最小长度x满足对于1≤i≤x1\le i\le x1≤i≤x，恰好有k对ai≠bia_i\ne b_iai​​=bi​。
A序列的循环节长度为n，B序列为m。
对于序列A,B，找出循环节中所有的ai≠bia_i\ne b_iai​​=bi​的时间复杂度是O(nm)O]]></description><category></category></item><item><title><![CDATA[Codeforces Round #707 Div. 2/C Going Home]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/114786591</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/114786591</guid><author>WedsonLin</author><pubDate>Sun, 14 Mar 2021 14:39:22 +0800</pubDate><description><![CDATA[Codeforces Round #707 Div. 2/C Going Home
题意：在长度为N的数组A中找出满足ax+ay=aw+aza_x+a_y=a_w+a_zax​+ay​=aw​+az​的一组x,y,w,zx,y,w,zx,y,w,z，要求它们之间两两不同。(N≤2e5,1≤a[i]≤2.5e6(N\le 2e5,1\le a[i]\le 2.5e6(N≤2e5,1≤a[i]≤2.5e6
。
最简单直接的算法就是枚举序列中的(i,j)(i,j)(i,j)然后加以判断，这样做的做法是O(n2)O]]></description><category></category></item><item><title><![CDATA[Codeforces Round #705 (Div. 2)/D. GCD of an Array]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/114497306</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/114497306</guid><author>WedsonLin</author><pubDate>Sun, 07 Mar 2021 21:40:21 +0800</pubDate><description><![CDATA[Codeforces Round #705 (Div. 2)
D. GCD of an Array
题意：给出一个长度为n的数组，每次对其中一个元素进行乘法操作，然后询问整个数组的GCD。
首先肯定想到的是，对数组的元素进行质因数分解，然后每次更新只用更新单个元素的质因数表达式。同时维护所有元素共有质因数的最小次幂，以便求GCD。
之后需要考虑的式用什么数据结构来维护每个元素的质因数表达式和所有元素共有质因数的最小次幂。
1、对于维护每个元素的质因数表达式。如果用vector则不便于修改，方法之一是可以使用]]></description><category></category></item><item><title><![CDATA[牛客IOI周赛23-普及组 /D(序列dp)]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/114437088</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/114437088</guid><author>WedsonLin</author><pubDate>Sat, 06 Mar 2021 13:20:07 +0800</pubDate><description><![CDATA[牛客IOI周赛23-普及组 /D(序列dp)
题目
题面：
小L喜欢数和数列。小L称a1…ana_1…a_na1​…an​这些数为优秀的。小L称一个序列b1…bmb_1…b_mb1​…bm​为好的当且仅当：
1.对于任意的 i(1≤i&lt;m)i (1 \leq i &lt;m)i(1≤i&lt;m)，满足 bi&lt;bi+1b_i&lt;b_{i+1}bi​&lt;bi+1​。
2.对于任意的 i(1≤i&lt;m)i (1 \leq i &lt;m)i(1≤i&lt;m)，满足 gcd(bi,bi+]]></description><category></category></item><item><title><![CDATA[UVA 11426]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/114412392</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/114412392</guid><author>WedsonLin</author><pubDate>Fri, 05 Mar 2021 20:41:05 +0800</pubDate><description><![CDATA[UVA 11426（欧拉函数）
求∑i=2N−1∑j=i+1Ngcd(i,j)\sum_{i=2}^{N-1}\sum_{j=i+1}^Ngcd(i,j)i=2∑N−1​j=i+1∑N​gcd(i,j)
一开始想过用莫比乌斯反演做…然而做不出来。
解：
∑i=1N−1∑j=i+1Ngcd(i,j)=∑i=2N∑j=1i−1gcd(i,j)\sum_{i=1}^{N-1}\sum_{j=i+1}^Ngcd(i,j)=\sum_{i=2}^N\sum_{j=1}^{i-1}gcd(i,j)i=1∑N−1​j=i]]></description><category></category></item><item><title><![CDATA[LightOJ 1336]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/114286250</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/114286250</guid><author>WedsonLin</author><pubDate>Tue, 02 Mar 2021 15:45:02 +0800</pubDate><description><![CDATA[LightOJ 1336
题目：求1-n中σ(x)\sigma(x)σ(x)为偶数的个数，其中σ\sigmaσ为约数和函数。
对任意正整数n有，n=p1a1p2a2p3a3...pnann=p_1^{a_1}p_2^{a_2}p_3^{a_3}...p_n^{a_n}n=p1a1​​p2a2​​p3a3​​...pnan​​
σ(n)=(1+p1+p12+...+p1a1)(1+p2+p22+...+p2a2)...(1+pn+pn2+...+pnan)\sigma(n)=(1+p_1+p_1^2+...+]]></description><category></category></item><item><title><![CDATA[斐波那契数列以及Catalan数通项公式的推导]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/113842102</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/113842102</guid><author>WedsonLin</author><pubDate>Mon, 22 Feb 2021 16:47:45 +0800</pubDate><description><![CDATA[1、斐波那契数列的通项公式推导：
已知斐波那契数列的递推公式为f(n)=f(n−1)+f(n−2)f(n)=f(n-1)+f(n-2)f(n)=f(n−1)+f(n−2)且f(0)=0,f(1)=1f(0)=0,f(1)=1f(0)=0,f(1)=1。
设斐波那契数列的生成函数为F(x)F(x)F(x),F(x)=∑i=0nf(i)xiF(x)=\sum_{i=0}^nf(i)x^iF(x)=∑i=0n​f(i)xi。

...]]></description><category></category></item><item><title><![CDATA[已知x=a mod p,y=b mod p,求gcd(x,y) mod p的最大值]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/113815596</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/113815596</guid><author>WedsonLin</author><pubDate>Mon, 15 Feb 2021 14:22:57 +0800</pubDate><description><![CDATA[已知x≡a(modp),y≡b(modp)x\equiv a\pmod p,y\equiv b\pmod px≡a(modp),y≡b(modp)求d≡gcd(a,b)(modp)d\equiv gcd(a,b)\pmod pd≡gcd(a,b)(modp)最大值。p为素数
已知x≡a(modp),y≡b(modp)x\equiv a\pmod p,y\equiv b\pmod px≡a(modp),y≡b(modp)求d≡gcd(a,b)(modp)d\equiv gcd(a,b)\pmod pd≡gcd]]></description><category></category></item><item><title><![CDATA[关于树状数]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/112747230</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/112747230</guid><author>WedsonLin</author><pubDate>Sun, 17 Jan 2021 16:31:24 +0800</pubDate><description><![CDATA[关于树状数组
简介：树状数组一般用来维护一个序列的前缀和。在求前缀和的时间复杂度为O(logn)，支持单点修改，区间修改，区间求和。
不妨用T标识树状数组，a表示原数组。对于T[i]，T[lowbit(i)]是T[i]的父亲节点，父亲节点维护着其子树的和。
inline int lowbit(int x){return x&amp;(-x);}

对于建树，每次只需要更新其父亲节点即可。时间复杂度O(n)
void build(int a[],int T[])
{
	for(int i=1;i&lt;=n;]]></description><category></category></item><item><title><![CDATA[TJOI 2017 (Pollard_rho,MR素数测试）]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/111129556</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/111129556</guid><author>WedsonLin</author><pubDate>Sun, 13 Dec 2020 17:18:00 +0800</pubDate><description><![CDATA[TJOI 2017 (Pollard_rho,MR素数测试）
题目链接
题意是求分数BA\frac{B}{A}AB​在模M下的逆元，没有则输出-1。
本题的两大核心是：Pollard_rho算法，和MR素数测试算法。
BA\frac{B}{A}AB​在模M下有逆元当且仅当gcd(A,M)=1gcd(A,M)=1gcd(A,M)=1，因为分数不是最简的，所以只要分数可以化简到B′A′\frac{B'}{A'}A′B′​，其中gcd(A′,M)=1gcd(A',M)=1gcd(A′,M)=1即有逆元。
我一开始]]></description><category></category></item><item><title><![CDATA[Timus 1673(反欧拉函数）]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/110874663</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/110874663</guid><author>WedsonLin</author><pubDate>Tue, 08 Dec 2020 16:44:32 +0800</pubDate><description><![CDATA[Timus 1673(反欧拉函数）
题目链接
有题意可知，设第i个教授掌管的实验室编号为index，则满足index≡i(modN)index\equiv i\pmod Nindex≡i(modN)；对于第k个同学，只去编号为index′=kx(k≥1)index'=kx(k\ge 1)index′=kx(k≥1)的实验室。如果第k个同学要获得考试资格，则满足如下同余方程组
{kx1≡1(modN)kx2≡2(modN)...kxN≡N(modN)\left\{\begin{matrix}
 kx_1\eq]]></description><category></category></item><item><title><![CDATA[Codeforces Round #290 (Div. 2) D]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/110692673</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/110692673</guid><author>WedsonLin</author><pubDate>Sat, 05 Dec 2020 16:01:47 +0800</pubDate><description><![CDATA[Codeforces Round #290 (Div. 2) D
题目要求满足如下约束条件的元组(l1,l2,l3,…,li)(l_1,l_2,l_3,\dots,l_i)(l1​,l2​,l3​,…,li​)：
l1x1+l2x2+l3x3+⋯+lixi=1l_1x_1+l_2x_2+l_3x_3+\dots+l_ix_i=1l1​x1​+l2​x2​+l3​x3​+⋯+li​xi​=1
使得函数F=∑i=1nciF=\sum_{i=1}^{n}c_iF=∑i=1n​ci​最小化。
说人话就是找到若干个数]]></description><category></category></item><item><title><![CDATA[SDOI 2016 排列计数]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/110391638</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/110391638</guid><author>WedsonLin</author><pubDate>Fri, 04 Dec 2020 11:32:43 +0800</pubDate><description><![CDATA[SDOI 2016 排列计数
题目链接
设满足题目条件且长度为n恰好有m个数稳定的序列数为ans(n,m)ans(n,m)ans(n,m)
那么易得题目答案ANS可表示为：
ANS=ans(n,m)=C(n,m)∗ans(n−m,0)ANS=ans(n,m)=C(n,m)*ans(n-m,0)ANS=ans(n,m)=C(n,m)∗ans(n−m,0)
因为题目规定n,m≤1e6n,m\le1e6n,m≤1e6，所以C(n,m)可以通过预处理阶乘+乘法逆元快速求得。
至于ans(n-m,0)，又被称作为全错]]></description><category></category></item><item><title><![CDATA[NOI 2018 屠龙勇士(exCRT)]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/110292295</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/110292295</guid><author>WedsonLin</author><pubDate>Sat, 28 Nov 2020 21:20:43 +0800</pubDate><description><![CDATA[NOI 2018 屠龙勇士(exCRT)
题目链接
根据题目。对于每一条龙，设其血量为a，回血量为p。选择武器的攻击力为ATK，攻击的最少次数为x。可以得到同余方程：
ATK⋅x≡a(modp)ATK\cdot x\equiv a\pmod  pATK⋅x≡a(modp)
这个方程也等价于
ATKgcd(ATK,p)⋅x≡agcd(ATK,p)(modpgcd(ATK,p))\frac{ATK}{gcd(ATK,p)}\cdot x\equiv \frac{a}{gcd(ATK,p)}\pmod {\fra]]></description><category></category></item><item><title><![CDATA[扩展中国剩余定理(EXCRT)]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/110136303</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/110136303</guid><author>WedsonLin</author><pubDate>Fri, 27 Nov 2020 14:58:49 +0800</pubDate><description><![CDATA[扩展中国剩余定理(EXCRT)
中国剩余定理可以解形如下面的一元线性同余方程组：
{ans≡x1(moda1)ans≡x2(moda2)ans≡x3(moda3)...ans≡xn(modan) \left\{\begin{matrix}
ans\equiv x_1\pmod{a_1} \\
ans\equiv x_2\pmod{a_2} \\
 ans\equiv x_3\pmod{a_3}\\
.\\
.\\
.\\
ans\equiv x_n\pmod{a_n}
\end{matrix}\right.]]></description><category></category></item><item><title><![CDATA[二次剩余与Cipolla算法]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/110098139</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/110098139</guid><author>WedsonLin</author><pubDate>Tue, 24 Nov 2020 23:33:28 +0800</pubDate><description><![CDATA[二次剩余与Cipolla算法
若存在x,使得
x2≡a(modp)x^2\equiv a \pmod{p}x2≡a(modp)
成立且a不是p的倍数，则称a为模p的二次剩余。
下文只讨论p为奇素数的情况。
1、模p二次剩余的个数
对于一个素数p，p的二次剩余有(p-1)/2个，非二次剩余有(p-1)/2个。
因为有(p−x)2≡x2(modp)(p-x)^2\equiv x^2 \pmod{p}(p−x)2≡x2(modp),所以在[1,(p-1)/2]范围内即可得到模p的所有二次剩余数，只需要证明在[1,]]></description><category></category></item><item><title><![CDATA[关于BSGS算法]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/109694180</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/109694180</guid><author>WedsonLin</author><pubDate>Sat, 14 Nov 2020 18:27:09 +0800</pubDate><description><![CDATA[关于BSGS算法
文章中提到的p，如果不加说明则默认为素数。
BSGS算法适用于在求解形如ax≡b(modp)a^x\equiv b \pmod pax≡b(modp)的不等式。
可知0≤x&lt;p0\le x&lt;p0≤x&lt;p，那么可以令x=A⌈p⌉−B,0&lt;=A,B&lt;=⌈p⌉x=A\lceil\sqrt{p}\rceil-B,0&lt;=A,B&lt;=\lceil\sqrt{p}\rceilx=A⌈p​⌉−B,0&lt;=A,B&lt;=⌈p​⌉
所以原问题转换成
aA⌈p⌉−B]]></description><category></category></item><item><title><![CDATA[Miller-Rabin随机性素数测试方法]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/109243719</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/109243719</guid><author>WedsonLin</author><pubDate>Sat, 24 Oct 2020 17:06:53 +0800</pubDate><description><![CDATA[关于素数测试
素数测试就是判断一个整数是素数还是合数。一般判断素数p的方式是通过判断2到根号p内的整数是否可以整除p来实现。时间复杂度为O(p1/2)。如果p是一个m位二进制整数，m=floor(Ig(p+1))，O(p1/2)=O(2m/2)。
然而对于大整数而言，这样的时间复杂度显然是不可以接受的。
费马小定理：if&nbsp;n&nbsp;is&nbsp;prime&nbsp;&nbsp;&nbsp;∀a∈Zn∗&nbsp;,&nbsp;an−1≡1(modn)if\space n\space is\]]></description><category></category></item><item><title><![CDATA[Candy UVA 1639 (数学期望)]]></title><link>https://blog.youkuaiyun.com/WedsonLin/article/details/109144787</link><guid>https://blog.youkuaiyun.com/WedsonLin/article/details/109144787</guid><author>WedsonLin</author><pubDate>Sun, 18 Oct 2020 15:04:06 +0800</pubDate><description><![CDATA[Candy UVA 1639 (数学期望)
有两个盒子各有n颗糖(n&lt;=2*105)，从两个盒子取糖的概率为p和1-p，直到一个盒子没糖，求另一个盒子中糖的个数的数学期望。
期望公式为：
E=∑i=1ni∗E(i)=∑j=0n(n−j)∗Cn+jj[pn+1∗(1−p)j+(1−p)∗pj]E=\sum_{i=1}^{n}i*E(i)=\sum_{j=0}^{n}(n-j)*C_{n+j}^{j}[p^{n+1}*(1-p)^{j}+(1-p)*p^{j}]E=i=1∑n​i∗E(i)=j=0∑n​(]]></description><category></category></item></channel></rss>