摘要: c++11改进了编译器的解析规则,尽可能的将多个右尖括号(>)解析为模板参数结束符,方便编写模板相关的代码。1. 模板的右尖括号之前的c++标准中,模板套模板中右尖括号不能连在一块,否则会和右移操作符混淆,如 vector > //右边的两个>要分开。而在c++11中,这种限制取消了,编译器能够判断... 阅读全文
posted @ 2015-09-12 11:31 农民伯伯-Coding 阅读(477) 评论(0) 推荐(0) 编辑
摘要: c++11中引入了auto和decltype关键字实现类型推导,通过这两个关键字不仅能够方便的获取复杂的类型,而且还能简化书写,提高编码效率。auto和decltype的类型推导都是编译器在编译的时候完成的,auto是通过定义auto变量时候给出的表达式的值推导出实际类型,并且在声明auto变量时必... 阅读全文
posted @ 2015-09-12 09:46 农民伯伯-Coding 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 题目大意动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类。 第... 阅读全文
posted @ 2015-09-10 21:42 农民伯伯-Coding 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 题目大意开始有N堆砖块,编号为1,2....N,每堆都只有一个。之后可以进行两种操作:(1)M X Y 将编号为X的砖块所在的那堆砖拿起来放到编号为Y的砖块所在的堆上;(2)C X 查询编号为X的砖块所在的堆中,在砖块X下方的所有砖块的数目题目分析典型的集合合并和查询,因此采用并查集。并查集的基本框... 阅读全文
posted @ 2015-09-10 16:55 农民伯伯-Coding 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 题目大意一个学校里面有n个学生(标号从0到n-1)和m个社团(标号从0到m-1),每个学生属于0个或多个社团。近期有SARS传播,属于同一个社团的学生的SARS可以相互传染。给出m个社团中的学生标号,已知学生0被传染了SARS,求所有可能被传染SARS的人数。题目分析典型的集合操作,求集合的大小。可... 阅读全文
posted @ 2015-09-10 15:43 农民伯伯-Coding 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 题目大意左右两个竖排,左边竖排有N个点,从上到下依次标记为1,2,...N; 右边竖排有M个点,从上到下依次标记为1,2....M。现在从K条直线分别连接左边一个点和右边一个点,求这K条直线的交点个数(左右竖排上的点不算做交点)。给出N,M,K,以及K条线的起点和终点。题目分析求两两交点的问题最好固... 阅读全文
posted @ 2015-09-09 14:51 农民伯伯-Coding 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目大意n个数排成一排(不知道大小,只是占了一个位置),从a[1]到a[n]进行遍历,对于每个a[i],给出从a[1]到a[i-1]中小于a[i]数的个数。要求出 a[1]到a[n]中这n个数的相对顺序。题目分析对于每个数 a[i], 给出了从 a[1] -- a[i-1]中小于a[i]的个数 le... 阅读全文
posted @ 2015-09-07 21:11 农民伯伯-Coding 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题目大意给定一个S*S的矩形,该矩形由S*S个1x1的单元格构成,每个单元格内可以放一个整数,每次有如下可能操作:(1)改变某个单位单元格中的数的大小(2)查询由若干个连续单元格构成的X*Y的大小的矩形内所有数的总和题目分析典型的区间操作,而且是单点更新,区间查询。因此使用树状数组,不过应该使用二维... 阅读全文
posted @ 2015-09-06 23:49 农民伯伯-Coding 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 动态规划问题的特征最优子结构问题的最优解包含的子问题的解也是最优的 —— 从子问题的最优解推出问题的最优解无后效性当前的状态值一旦确定,则后续的状态的确定只和这些状态的值有关,而和到达这些状态的路径无关(这样才可能保存状态,且状态推演)动态规划一般步骤分解子问题子问题和原问题类似,且需要保存子问题的... 阅读全文
posted @ 2015-09-06 18:24 农民伯伯-Coding 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 树状数组基本概念树状数组也是进行区间操作的常用数据结构。树状数组适用于单个元素经常修改,而且还反复求部分的区间和的情况.对于数组a,构造一个新的数组C,使得C[i] = a[i-2^k+1] + a[i-2^k+2] + ... + a[i];(1) i >= 1;(2) k为i在二进制表示下末尾的... 阅读全文
posted @ 2015-09-06 18:04 农民伯伯-Coding 阅读(288) 评论(0) 推荐(0) 编辑