1、将一位数转为2进制
#include<bitset>
bitset的作用是把一个数转换成二进制
如 bitset<8>是把一个数转换成一个8位的二进制
输出的时候可以转为string输出,t.to_string()。
2、结构体数组排序
bool cmp(const node& x, const node& y) {
return x.s > y.s; //降序
}
sort(word, word + n, cmp);
3、整除分块
r = n/ (n/i) 代表最后一个与当前的n/i
相等的i
的边界值(因为对某些连续的i
值来说,他们的n/i
都相等),可以跳过这部分值,然后可以通过乘积来实现跳过一部分循环。
4、快速幂函数:
ll quickpow(ll a,ll b,ll c) { ll res = 1; a %= c; while (b){ if (b & 1){ res = (res * a) % c; } a = (a * a) % c; b >>= 1; } return res; }
5、质数判断:
1 int isprime(int n){ 2 for (int i = 3; i <= n; i += 2) { //偶数不是质数,步长可以加大 3 float temp = static_cast<float>(i); 4 int mid = static_cast<int>(sqrt(temp)); 5 int j; 6 for (j = 3; j <= mid; j += 2) 7 if (i % j == 0) 8 break; 9 10 if (j > mid){ 11 if(n==i){ 12 return 1; 13 } 14 } 15 } 16 return 0; 17 }