模板栏
冰茶姬
/*
ps:本代码经过360,腾讯电脑管家,金山毒霸等权威软件严格杀毒,未携带任何病毒,请评测姬放心评测!!
*/
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#define out(x) printf("%d\n",x) ;
#define in(x) scanf("%d",&x) ;
#define rep(x,y,z) for(int x = y ; x <= z ; x ++)
using namespace std ;
const int maxn = 1e5 + 100 ;
int read() {
int x = 0 , f = 1 ; char s = getchar() ;
while(s > '9' || s < '0') {if(s == '-') f = -1 ; s = getchar() ;}
while(s <='9' && s >='0') {x = x * 10 + (s-'0'); s = getchar() ;}
return x*f ;
}
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 ;
}
快速幂
/*
ps:本代码经过360,腾讯电脑管家,金山毒霸等权威软件严格杀毒,未携带任何病毒,请评测姬放心评测!!
*/
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#define in(x) scanf("%d",&x) ;
#define rep(x,y,z) for(int x = y ; x <= z ; x ++)
#define int long long
using namespace std ;
int read() {
int x = 0 , f = 1 ; char s = getchar() ;
while(s > '9' || s < '0') {if(s == '-') f = -1 ; s = getchar() ;}
while(s <='9' && s >='0') {x = x * 10 + (s-'0'); s = getchar() ;}
return x*f ;
}
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 ;
}
套路栏