
常用小技巧
hn2zzzz1996
这个作者很懒,什么都没留下…
展开
-
离散化的两种方法
#include <bits/stdc++.h>using namespace std;void fun1() { // 有重复元素的离散化 vector<int> a = {20, 20, 30, 30, 15}; vector<int> t; t = a; sort(t.begin(), t.end()); // 需要先去重 int m = unique(t.begin(), t.end()) - t.begin(); for (int&am原创 2020-12-16 15:08:22 · 224 阅读 · 0 评论 -
判断一个数是不是2的幂次
1. 用一个更大的2的幂次数来整除当前数比如2102^{10}210一定能够整除21,22...2^1, 2^2...21,22...等等。2. 使用位运算来判断当一个数为2的幂次时,其二进制表示一定只有一位是1,其形式如001000000010000000100000,而把它减一后得到形如000111110001111100011111,即两数相与等于0.if ((i & (i-1) == 0) // i is power of 2...原创 2020-12-07 15:18:50 · 709 阅读 · 0 评论