C++ 奇淫技巧(缓更)

C++ 奇淫技巧

scanf("%[^\n]", s); 读取带空格字符串

无向图 头文件 lower_bound 宏定义
并查集
/*
    |合并节点操作|
    |16/11/05ztx, thanks to chaixiaojun|
*/

int father[maxn];   //  储存i的father父节点  

void makeSet() {  
    for (int i = 0; i < maxn; i++)   
        father[i] = i;  
}  

int findRoot(int x) {   //  迭代找根节点
    int root = x; // 根节点  
    while (root != father[root]) { // 寻找根节点  
        root = father[root];  
    }  
    while (x != root) {  
        int tmp = father[x];  
        father[x] = root; // 根节点赋值  
        x = tmp;  
    }  
    return root;  
}  

void Union(int x, int y) {  //  将x所在的集合和y所在的集合整合起来形成一个集合。  
    int a, b;  
    a = findRoot(x);  
    b = findRoot(y);  
    father[a] = b;  // y连在x的根节点上   或father[b] = a为x连在y的根节点上;  
}  

/*
    在findRoot(x)中:
    路径压缩 迭代 最优版
    关键在于在路径上的每个节点都可以直接连接到根上
*/

#include<cstdio>
#include<cmath>
#include<vector>
#include<algorithm>
#include<iostream>
#define each(a,b,c) for(int a=b;a<=c;a++)
#define de(x) cout<<#x<<" "<<(x)<<endl;
using namespace std;
const int maxn = 1e6+5;
const int INF = 0x3f3f3f3f;

快速幂

typedef long long ll;
//如果是奇数,res乘上a,a增倍,n缩小
ll powermod(ll a, ll n, ll mod)
{
    ll res = 1;
    while (n > 0)
    {
        if (n & 1)
        {
            res = (res*a) % mod;
        }
        a = (a*a) % mod;
        n >>= 1;
    }
    return res;
}
CSP的压缩编码是一个裸的区间DP,需要多加整理模板
int gcd(int a, int b)
{
    return b == 0 ? a : gcd(b, a%b);
}
虽然放弃希望了,但是可以给队友施压
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果需要原文档(因文体限制,部分表格无法呈现)请联系QQ1769090563 本文由中医仲景协会整理收集 《内经选...
    陶墨阅读 34,818评论 0 33
  • #日更打卡# Day6 认真起来,就会有一种莫名的恐慌,好像一切都来不及了。 【记忆太差】 最近一直在阅读王朔的《...
    两碗米饭阅读 231评论 2 1
  • 读书这件事 夸张一点说,大半辈子我只做了一件事:读书。 入小学读,进中学读,上大学读。到出版社工作还是读:原稿审读...
    好雨好语阅读 163评论 0 0
  • 那个我不安的老问他会不会离开我的那个人还是离开我了。知道自己不好可还是委屈的想哭。不适合谈恋爱适合一个人,时间久了...
    荔枝糖yang阅读 110评论 0 0
  • 很幸运,也很感恩……我居然活过了2018,马上就要跟2018说拜拜了! 都说一个人这一生一定会有一个坎,要么在二三...
    张语桐阅读 506评论 1 1