读取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在最短路上。