模板练习

· · 个人记录

模板练习

CSP-S

数论

一些不是洛谷上的模板但也顺便练习一下的筛子(在线性筛的基础上练习)

如果实在写不出来可以背结论\phi(mn)\phi(\gcd(m,n))=\phi(m)\phi(n)\gcd(m,n)

以上筛子的思路是先找质数,不是质数也要试着乘一下做标记,直到遇到其最小因子然后特殊处理(跟质数筛不一样)后 break;

显然当 b=1,a=0x=gcd(a,b),y=0

假设已经递归的找到了 bx'+(a \bmod b)y'=gcd(a,b) 的一组解。有 a \bmod b=a-b\times\Large\lfloor\frac{a}{b}\rfloor,代入,得到 bx'-b\lfloor\dfrac{a}{b}\rfloor y'+ay'=gcd(a,b),分别提取公因子,得到 ay'+b(x'-\lfloor\dfrac{a}{b}\rfloor y')=gcd(a,b)。所以 x=y',y=(x'-\lfloor\dfrac{a}{b}\rfloor y')。Q.E.D

数据结构

树论

upd11/6:34min18s,一次过了。

图论

do
{
    id[stk[top]]=cps;
    instk[stk[top]]=0;
    col[cps]++;
    top--;
}while(stk[top+1]!=u);

注意到要判断的是刚处理的元素和栈顶是否相等。

点双有关点是不是搜索树的根节点的分讨好繁琐啊不像边双。记得弹栈的时候按 v 为栈顶弹,因为 u 是点双不能把它弹走了。

其实没比强联通分量慢多少以及调试花去不少时间

当访问到一个点没有被访问过时,走的是树边,先判断其能否。所以可以

字符串

NOIP

数论

数据结构

树论

图论

字符串