摘要:
关于C++memory_order的理解 看了c++并发编程实战的内存模型部分后,一直对memory_order不太懂,今天在知乎发现了百度的brpc,恰好有关于原子操作的文档,感觉解释的很好。为了加深理解,再次总结一遍。 在多核编程中,我们使用锁来避免多个线程修改同一个数据时产生的竞争条件。但是, 阅读全文
摘要:
深度探索C++对象模型读书笔记 第一章 关于对象 影响C++继承体系对象的内存布局和存取时间的因素 虚函数 虚基类 class member 类型 data member: static, nonstatic member function: static, nonstatic C++对象模型 每个 阅读全文
摘要:
Codeforces Round #686 (Div. 3) E.ArrayPartition 题目大意:找到x、y、z三个数,将数组分成3部分,使得第一部分的最大值、第二部分的最小值、第三部分的最大值全部相等。 思路 查询区间的最值,但并不修改数组,这使我们想到了ST表这个数据结构,可以O(nlo 阅读全文
摘要:
Codeforces Round #686 (Div. 3) E题求简单路径的个数 大意:给一个n个节点n条边的无向图,求简单路径的个数。 思路:先拓扑排序,我们从度为1的叶节点开始,把除环上的节点全部标记成已访问(环上的节点的度>=2,不会变成1),然后依次从环上的每一点,dfs它的子树,得到每一 阅读全文
摘要:
图与链表的深拷贝 都用到了unordered_map:原节点->拷贝节点,在遍历的过程中完成复制。 图:leetcode 133.克隆图 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。 cla 阅读全文
摘要:
Codeforces Round #686(Div.3) C- Sequence Transformation 题目大意:一个数组,选定数组中一个数x,每次可以删掉不包含x的一段,使得最终数组只剩下x,求最小的删除次数。 可以将一段连续相同的数看成一个数字,然后记录它的出现次数。最小值就是出现次数+ 阅读全文
摘要:
地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi。 注意:不同目标可能在同一位置。 现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。 激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和x,y轴平 阅读全文
摘要:
#include <iostream> #include <stack> using namespace std; int n, m; // void dfs(int u, int sum, int state) // { // // 0 // if(sum + n - u < m) return; 阅读全文
摘要:
第二章 空间配置器(allocator) 空间配置器标准接口(allocator) allocator配置器是SGI STL提供的标准接口,但它只是对operator new()和operator delete()做了一层简单封装,效率不高,所以SGI并没有使用它。 高效的空间配置器结构std::a 阅读全文