寒假集训Day5
vector去重
unique(a.begin(),a.end());
返回一段没有重复的数组的末尾
得到去重后的数组:
a.erase(unique(a.begin(),a.end()),a.end());
二分推荐写法
int l = 1,r = 1e9,ans;
while(l <= r) {
int mid = (l + r) >> 1;
if(check(mid)) {
ans = mid;
l = mid + 1;
}
r = mid - 1;
}
快速幂
int qpow(int a,int b) {
int res = 1;
while(b > 0) {
if(b & 1) res = res * a;
a = a * a;
b >> = 1;
}
return res;
}
lowbit
任何一个十进制整数都可以表示为二进制,lowbit的作用就是
求出一个整数在二进制表示下,从右往左数遇到的第一个1,然后把后面所有的位都补上0之后输出的结果
所以2的k次幂求lowbit之后还是原来的数
int lowbit(int x){return x&(-x);}

浙公网安备 33010602011771号