hdu3461Code Lock 快速幂+并查集

;typedef __int64 ll ;const int maxn = 10000010 ;const ll mod = 1000000007 ;int F[maxn] ;ll pow(int b){ll c = 1 ;ll a = 26 ;while(b){if(b&1)c = ((c%mod)*(a%mod))%mod;a =(a*a)%mod ;b >>= 1;}return c ;}int find(int x){if(F[x] == 0)return x ;return F[x] = find(F[x]) ;}bool join(int x , int y){int fx = find(x) ;int fy = find(y) ;if(fx == fy)return false ;F[fx] = fy ;return true ;}int main(){int n , m ;while(~scanf(“%d%d” , &n , &m)){memset(F , 0, sizeof(F)) ;int sum = 0 ;while(m–){int l , r ;scanf(“%d%d” ,&l , &r) ;if(join(l , r+1))sum++ ;}printf(“%I64d\n” , pow(n – sum)) ;}return 0 ;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

,有勇气并不表示恐惧不存在,而是敢面对恐惧克服恐惧

hdu3461Code Lock 快速幂+并查集

相关文章:

你感兴趣的文章:

标签云: