1、一般头文件:
#include<iostream>
using namespace std;
2、ios::sync_with_stdio(false);
其含义是取消cin与stdin的同步,cout和stdout的同步
cin.tie(0);
tie是将两个stream绑定的函数,空参数的话返回当前的输出流指针。
3、&表示按位运算
(i & 1)-->取 i 为奇数
4、#define lowbit( x ) ( x & -x )
x与-x按位运算,取得就是x从右边数第一个为1的数
5、memset(vis, 0, sizeof(vis)) ——》要用到头文件 #include<cstring>
其中 int vis[1000010] 其含义是对数组vis进行赋值
6、sort(branch, branch+n) ——》头文件 #include<algorithm> (相当于快排)
其默认是从小到大排序
从大到小排序 ——》sort(branch, branch+n, greater<int>() )
7、vector容器 ——》#include<vector>
vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外, vector 也提供了许多的方法来对自身进行操作。
vector<int> a ; //声明一个int型向量a
vector<int> a(10) ; //声明一个初始大小为10的向量
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a) ; //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
8、吸收回车用getchar()
一般经常是由上面用scanf输入,下面输入字符串,中间的回车造成的。
如果上面用cin输入的话,用getchar吸收回车会出错。
9、ios::sync_with_stdio和scanf,printf混用,会WA