1.next_permutaion(a,a+n):
用于一个数组的全排列(从当前数组状况开始,所以要真正生成全排列之前先排序)。用法如下。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main(){ 5 int a[3]; 6 a[0]=1;a[1]=2;a[2]=3; 7 do{ 8 cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl; 9 }while (next_permutation(a,a+3)); 10 }
2.__builtin_popcount(i):
用于计算i的二进制位数中共有几个1.
3.bitset<maxn>:
相当于一个数组,但每位只能为0或1.暴力时用到可以增加效率。