首页 > 其他 > 详细

考前模板&套路整理

时间:2019-11-10 10:21:19      阅读:84      评论:0      收藏:0      [点我收藏+]

模板栏

冰茶姬

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!