int fa[maxn] , n , m ;
int find(int x) {
if(fa[x] != x) fa[x] = find(fa[x]) ;
return fa[x] ;
}
void unionn(int x ,int y) {
x = find(x) ;
y = find(y) ;
fa[x] = y ;
}
int check(int x,int y) {
x = find(x) , y = find(y) ;
if(x == y) return 1 ;
return 0 ;
}
int main () {
n = read() , m = read() ;
for(int i = 0 ; i <= n ; i ++) fa[i] = i ;
rep(i,1,m) {
int opt = read() , x = read() , y = read() ;
if(opt == 1) {
unionn(x,y) ;
}else {
if(check(x,y)) puts("Y") ;
else puts("N") ;
}
}
return 0 ;
}
int n , m , ha ;
int quick_pow(int x ,int p) {
int res = 1 ;
for(; p ; p >>= 1 , x = x * x % ha) {
if(p & 1) res = res * x % ha ;
}return res ;
}
signed main () {
n = read() , m = read() , ha = read() ;
printf("%lld^%lld mod %lld=%lld",n,m,ha,quick_pow(n,m)) ;
return 0 ;
}
int prime[maxn] , vis[maxn] , tot , n , m ;
int main () {
vis[1] = 1 ;
n = read() , m = read() ;
for(int i = 2 ; i <= n ; i ++) {
if(!vis[i]) prime[++tot] = i ;
for(int j = 1 ; j <= n && i * prime[j] <= n ; j ++) {
vis[i*prime[j]] = 1 ;
if(i % prime[j] == 0) break ;
}
}
while(m --) {
cout << (vis[read()] == 0 ? "Yes" : "No") << endl ;
}
return 0 ;
}
```
priority_queue<int,vector<int>,greater<int> >q ;
int n , m ;
int main () {
m = read() ;
while(m --) {
int opt = read() ,x ;
if(opt == 1) {
x = read() ;
q.push(x) ;
}else if(opt == 2) {
cout << q.top() << endl ;
}else {
q.pop() ;
}
}
return 0 ;
}
原文:https://www.cnblogs.com/lyt020321/p/11828929.html