各种技巧摘抄

读取a的二进制第k位 a>>k&1
将a的第k位清零 a&=~(1<<k)
将a的第k位变成 a|=1<<k
将a的第k位取反 a^=1<<k

费马小定理求a在mod p意义下的inv:\(a^{p-2}=1/a((mod)p)\)
递推求inv :i在mod m下:\[t=m/i,k=m (mod) i,inv[i]=inv[k]*(m-t) (mod)m\]

质因数分解:

for(int i=2;i<=a;++i)
{
    int s=0;
    while(a%i==0)
    {
        s++;
        a/=i;
    }
    cout<<i<<'^'<<s<<'\n';
}

if(dis[s to x]+dis[x to t]==dis[s to t])则x在最短路上。

上一篇:【扩展lucas定理】


下一篇:[JXOI2018]游戏