随笔分类 -  C++

C++相关问题
摘要:1. 背景 本文基于MySQL InnoDB源码对InnoDB中非锁定一致性读是如何实现的作一些简单的探究。 2. 基本概念 2.1 隐藏字段 在经典之作《高性能MySQL》的1.4节中提及了MySQL中MVCC的实现,原著中提及了 InnoDB implements MVCC by storing 阅读全文
posted @ 2018-01-02 23:52 活在夢裡 阅读(2526) 评论(1) 推荐(0)
摘要:本文针对MySQL InnoDB中在Repeatable Read的隔离级别下使用select for update可能引发的死锁问题进行分析。 1. 业务案例 业务中需要对各种类型的实体进行编号,例如对于x类实体的编号可能是x201712120001,x201712120002,x20171212 阅读全文
posted @ 2017-12-22 00:42 活在夢裡 阅读(49986) 评论(1) 推荐(11)
摘要:编译OpenJDK主要为了学习HotSpot,编译过程在很多相关书籍中都有所涉及,但由于机型、机子具体环境的不同,很难有资料能够一步到位。还是得碰到具体问题通过上网查来一个个解决。 下载OpenJDK 由于网络环境还不错,所以这里采用通过版本管理来下代码。 安装mercurial版本管理 接下来cl 阅读全文
posted @ 2017-06-15 16:22 活在夢裡 阅读(6248) 评论(2) 推荐(0)
摘要:题目描述 "Brain Network (hard)" 这个问题就是给出一个不断加边的树,保证每一次加边之后都只有一个连通块(每一次连的点都是之前出现过的),问每一次加边之后树的直径。 算法 每一次增加一条边之后,树的直径长度要么不变,要么会增加1,并且如果树的直径长度增加1了,新的直径的端点其中一 阅读全文
posted @ 2016-08-05 13:01 活在夢裡 阅读(308) 评论(0) 推荐(0)
摘要:求文本与单模式串匹配,通常会使用KMP算法。后来接触到了Z算法,感觉Z算法也相当精妙。在以前的博文中也有过用Z算法来解决字符串匹配的题目。 下面介绍一下Z算法。 先一句话讲清楚Z算法能求什么东西。 输入为一个字符串s,Z算法可以求出这个字符串每一个后缀与自身的最长公共前缀LCP,Z算法可以求出一个数 阅读全文
posted @ 2016-06-15 00:35 活在夢裡 阅读(2893) 评论(0) 推荐(0)
摘要:题目链接:https://csacademy.com/contest/arhiva/#task/force_graph/ 大意是有若干个节点,每个节点对应一个二维坐标,节点之间相互有斥力存在。同时有些节点之间有变存在。对于有边存在的节点,他们互相的斥力大小为F1*dis值,否则则为F2*dis值,其 阅读全文
posted @ 2016-05-10 16:09 活在夢裡 阅读(736) 评论(0) 推荐(0)
摘要:题目链接:https://csacademy.com/contest/arhiva/#task/long_journey/ 大意是有一张无向不带权的图,两个人同时从s点出发,分别前往a点和b点,且每个人应该走s到a和s到b的最短路,问他们可以一起走的最大距离是多少。 我一开始的想法是以s为源点bfs 阅读全文
posted @ 2016-05-10 16:03 活在夢裡 阅读(348) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/655/problem/E 大意是Bessie只会英文字母表中的前k种字母,现在有一个长度为m+n的字母序列,Bessie已经知道了前m个字符,问如何填充剩下的n个字符,使得整个序列的不同子序列数目最大。当然所有字母都得是Bess 阅读全文
posted @ 2016-05-06 14:54 活在夢裡 阅读(244) 评论(0) 推荐(0)
摘要:题目链接:https://code.google.com/codejam/contest/11254486/dashboard#s=p2 大意是教授的学生每个人在纸条上写一个自己的topic,每个topic由两个单词组成,那么纸上留下了若干个topic。topic分为 "faked" 或者 "un- 阅读全文
posted @ 2016-05-01 15:17 活在夢裡 阅读(365) 评论(0) 推荐(0)
摘要:上次,一个同学问我,你知不知道可以不用引入中间变量就可以实现swap? 我说,我知道,可以用加减法或者异或实现,像是这样 或者这样 但这种花式swap没什么意义,而且具有风险,那就是如果参数引用的是同一个变量,将产生错误的结果0。 这种问题叫pointer aliasing 另外C++中也有类似于C 阅读全文
posted @ 2016-04-17 16:31 活在夢裡 阅读(461) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/652/D 大意:给若干个线段,保证线段端点不重合,问每个线段内部包含了多少个线段。 方法是对所有线段的端点值离散化,按照左端点从大到小排序,顺着这个顺序处理所有线段,那么满足在它内部的线段一定是之前已经扫到 阅读全文
posted @ 2016-04-15 11:58 活在夢裡 阅读(242) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/655/problem/D 大意是给若干对偏序,问最少需要前多少对关系,可以确定所有的大小关系。 解法是二分答案,利用拓扑排序看是否所有关系被唯一确定。即任意一次只能有1个元素入度为0入队。 1 #include <iostrea 阅读全文
posted @ 2016-04-13 01:50 活在夢裡 阅读(208) 评论(0) 推荐(0)
摘要:题目连接:http://codeforces.com/problemset/problem/656/E 愚人节专场的E,整个其实就是个Floyd算法,但是要求代码中不能包含 这些关键词。 如果不考虑屏蔽define,很容易想到将代码中用到的关键词全部define成其它不在列表中的词。但是define 阅读全文
posted @ 2016-04-10 14:04 活在夢裡 阅读(261) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/557/D 大意 给出一个未必联通的无向图(点数至少为3),问最少加多少边可以形成一个奇圈,以及这样做的方案有多少种。 首先如果是一张没有边的图,那么直接就是需要加三条边,有C(n,3)种方式。 接着,判断这 阅读全文
posted @ 2016-03-23 00:21 活在夢裡 阅读(383) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/653/F 大意是给出一个只包含'('和')'的括号串,求有多少不同的子串是合法的括号串 解法:对于每一个后缀,需要能够求出这个后缀有多少前缀是合法的括号串,这个可以用O(log n)复杂度的二分来解决。注意 阅读全文
posted @ 2016-03-22 23:16 活在夢裡 阅读(313) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/650/problem/D 大意是给一个数组,若干询问,每一次把一个数字改为另一个数字,问当前数组最长上升子序列,询问之间是独立的。 注意到:假设初始数组的LIS长度为len。如果某一个位置的数字属于所有LIS,那么即便这个位置的 阅读全文
posted @ 2016-03-08 19:19 活在夢裡 阅读(255) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/536/problem/B 一个原始字符串,一个未知字符串,每一次从pos[i]开始覆盖未知字符串,问最后字符串的形式,以及判断过程中是否有矛盾。 过程中pos是升序的,所以如果任意连续两次操作,如果覆盖范围不重叠,则没事,否则需 阅读全文
posted @ 2016-03-05 18:39 活在夢裡 阅读(245) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/631/D 给定两个压缩形式的字符串,如a3b5a4k7这样的形式 问A在B中出现次数。 分类讨论,如果A是只有一种字符的,则答案数量可能很大,但计算也很简单,直接看B的每一个字符,答案累加上cnt2-cnt 阅读全文
posted @ 2016-03-05 18:26 活在夢裡 阅读(294) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/427/D 大意是寻找两个字符串中最短的公共子串,要求子串在两个串中都是唯一的。 造一个S#T的串,做后缀数组,从小到大枚举子串长度在height数组中扫描,如果某一个组中来自两个串的数量分别为1,就找到了答 阅读全文
posted @ 2016-03-05 18:17 活在夢裡 阅读(237) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/633/G 大意是一棵树两种操作,第一种是某一节点子树所有值+v,第二种问子树中节点模m出现了多少种m以内的质数。 第一种操作非常熟悉了,把每个节点dfs过程中的pre和post做出来,对序列做线段树。维护取 阅读全文
posted @ 2016-02-29 23:36 活在夢裡 阅读(365) 评论(0) 推荐(0)