摘要: 这道题是要查询某个区间内数字出现的最大次数,序列不降,可以用线段树来做。每个结点维护左右端点的值和出现次数(长度)以及该区间的Frequent values,然后向上合并即可。 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文
posted @ 2015-08-09 15:39 hxy_has_been_used 阅读(131) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; #define L(x) ( x 0 ) { node[u].len = node[u].rf - node[u].lf; return; } else if ( node[u].l + 1 == node[u].r... 阅读全文
posted @ 2015-08-09 14:13 hxy_has_been_used 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 记f[i]为在长度是i的格子上面至少放一个木桩的方法数。考虑第i个格子,有放和不放两种情况。1.如果第i个格子放了一个木桩,则i - 1和i - 2格子上面不能放木桩,方案数为:f[i - 3] + 12.如果第i个格子没有放木桩,则方案数为:f[i - 1]然后递推即可。 1 #include ... 阅读全文
posted @ 2015-08-09 13:55 hxy_has_been_used 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个点(坐标均为整数),判断可以构成多少个正三角形、正四边形、正五边形、正六边形。官方题解:地球人都知道整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可。假如你不是地球人,那么即使暴力枚举正三边形和稍微不那么暴力地找正五边形和正六边形也是可以通过的... 阅读全文
posted @ 2015-08-09 10:54 hxy_has_been_used 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 每个结点除了维护父亲结点编号以外,多维护一个sum值和r值,表示该子树的总结点数(如果该结点是根则sum值有效)以及它到根的距离(即被运输了几次),然后在路径压缩和集合合并的时候顺便维护这两个值即可。 1 #include 2 #include 3 #include 4 using names... 阅读全文
posted @ 2015-08-09 09:13 hxy_has_been_used 阅读(125) 评论(0) 推荐(0) 编辑