算法
文章平均质量分 87
ACM题目、算法题目等
Cross_Entropy
这个作者很懒,什么都没留下…
展开
-
一些比较巧妙的操作
判断一个数是不是2的整数倍if ( !(x & (x - 1)) )假设 x 是 2 的整数倍,比如 x = 4, 则他的二进制是 1000, 减去 1, 则是 0111,二者相与,结果为0.枚举一个二进制集合的子集二进制集合的子集 意思是:假设某个二进制为 1101, 那么他的子集分别是 1101, 1100, 1001, 1000, 0101, 0100, 0001int bset; // bset 是要枚举子集的集合for (int i = bset; i; i = (i -原创 2021-03-03 09:43:46 · 206 阅读 · 0 评论 -
单调栈、单调队列和并查集
文章目录单调栈步骤代码应用单调队列步骤代码应用并查集步骤代码应用单调栈单调栈,故名思意,就是栈内元素具有单调性的栈。可以是单调递增,也可以是单调递减,抑或是单调非增等。步骤单调栈的原理比较简单,只需要两步即可。以单调递增的单调栈为例:如果栈为空,则将新元素入栈。如果栈非空,比较要加入的元素与栈顶元素的大小如果大于栈顶元素,将新元素加入如果小于或等于栈顶元素,则不断弹出栈顶元素,直到栈顶元素小于新元素或栈为空,之后将新元素入栈。可以结合一个例子来看:比如有一个数列,[1,6,7,原创 2020-05-12 19:02:25 · 430 阅读 · 0 评论 -
C++中的STL
文章目录vector用途基本操作定义元素访问使用下标使用迭代器使用auto遍历常用函数push_back()与pop_back()clear()与empty()insert()erase()常见使用情况用邻接表的形式存储图存储输入个数不定的数据模拟stack(vector速度比stack要快)时间复杂度map用途基本操作定义元素访问通过键访问通过迭代器访问使用auto遍历常用函数常见使用情况字符串...原创 2020-02-28 22:16:54 · 2387 阅读 · 0 评论