![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法技巧
文章平均质量分 61
_Falling_stars_
But thy eternal summer shall not fade
展开
-
线性同余方程 学习笔记
形如ax≡b(modn)的方程我们称之为线性同余方程,a,b,n已知,求解x。原创 2022-11-15 11:31:26 · 102 阅读 · 0 评论 -
JZOJ 2110【GDKOI2011模拟二】朋友分组
description有n个人,编号为1~n,告诉你哪些人之间是不友好的。现在,让你将这n个人分成两组,使得每一组之内的人是互相友好的,如果可以分成两组,则输出如何分组的,如果不可以分成两组,那么,输出“IMPOSSIBLE”。input第一行两个整数n和m(1<=n<=50,000,0<=m<=500,000),分别表示人数以及不友好的人的对数。以下m行每行两个数a和b,表示a与b是不友好的。output如果可以分成两个组,则输出一个方案,第一行为第一组的人的编号,第二行原创 2022-04-30 17:00:10 · 214 阅读 · 0 评论 -
JZOJ 2108【GDKOI2011模拟二】最短等车
description无家可归的JOZO买了一张火车月票,这样他就可躺在车厢里梦想未来的美好生活了。 已知所有的火车站,连接火车站的铁路和它们的长度(也就是火车开完这条铁路要多少时间)。铁路是双向的,而且无论沿着哪个方向开,所需时间都是相同的。 你还知道所有火车的出发时间和它们经过的车站,火车每到达一个车站都会停一停。 开始时(时刻1)JOZO在车站1,他必须在时刻T1到T2这个区间内回到车站1。如果在同一时刻同一车站有两辆火车,他不需花任何时间就可以从一辆车跳到另一辆上。 请你写一个程序原创 2022-04-30 16:51:37 · 107 阅读 · 0 评论 -
最长公共子序列
Description给出nnn和长度为nnn的两个序列A,BA,BA,B,求他们的最长公共子序列朴素算法设fi,j{f_{i,j}}fi,j为AAA序列枚举到iii,BBB序列枚举到jjj,最长公共子序列的长度显然:fi,j=max{fi−1,j−1+(Ai==Bj),fi−1,j,fi,j−1}f_{i,j}=max\{f_{i-1,j-1}+(A_i==B_j),f_{i-1,j},f_{i,j-1}\}fi,j=max{fi−1,j−1+(Ai==Bj),fi−1,j,fi原创 2022-04-03 17:09:38 · 68 阅读 · 0 评论 -
筛法求约数个数
Description用DiD_iDi表示iii的约数个数,numinum_inumi表示iii的最小质因子出现次数。Proof引理1:若n=∏i=1mpici,则Di=∏i=1mci+1(1.1)若n=\prod_{i=1}^{m}p_i^{c_i}\tag{1.1},则D_i=\prod_{i=1}^{m}c_i+1若n=i=1∏mpici,则Di=i=1∏mci+1(1.1)引理2:若n=i∗j(gcd(i,j)=1),则Dn=Di∗Dj(1.2)若n=i*j(gcd原创 2022-04-03 17:08:44 · 150 阅读 · 0 评论 -
琪露诺的完美算法课
Description给出aaa的范围[x,y][x,y][x,y],求满足c2⩽a2+b2⩽c2+1c^2\leqslant a^2+b^2\leqslant c^2+1c2⩽a2+b2⩽c2+1的边长均为正整数的三角形个数Solution对原式变形:a2=c2−b2=(c+b)(c−b)a^2=c^2-b^2=(c+b)(c-b)a2=c2−b2=(c+b)(c−b)a2−1=c2−b2=(c+b)(c−b)a^2-1=c^2-b^2=(c+b)(c-b)a2−1=c2−b2=(c+b原创 2022-04-03 17:06:22 · 269 阅读 · 0 评论 -
浅谈乘法与幂
确实是浅谈快速幂利用二进制,将次幂拆分为平方,一次解决ll quickpow(ll a,ll b){ ll res=1; while(b){ if(b&1)res=res*a%mo; a=a*a%mo,b>>=1; } return res;}龟速乘为了解决两数相乘爆longlong的情况为了让懒癌患者不写高精同样利用二进制思想,将乘法变加法ll quickmul(ll a,ll b){原创 2022-01-02 20:33:02 · 298 阅读 · 0 评论