摘要:     线段树/区间树是一种非常常用的对区间数据进行操作的数据结构。     线段树是一棵二叉树(但不一定是完全二叉树!),它的每个节点均代表一个区间,且父节点代表的区间为左右子节点代表的区间之和。特别的,根节点代表的区间为所有节点代表区间之和,各个叶节点代表区间为单个点(即长度为1的区间)。    阅读全文
posted @ 2015-09-06 17:32 农民伯伯-Coding 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 题目大意一个果树(每个节点的分叉数目不固定)上有N个分叉点(包括最末的叶节点),则有N-1条边,将分叉点进行从1到N编号,每个分叉点上均可以结水果。开始的时候,每个分叉点都有一个水果,之后进行一系列操作,分为两种操作:(1)Q x: 查询分叉点x以及x的子树上的水果的总数;(2)C x: 更改分叉点... 阅读全文
posted @ 2015-09-06 16:04 农民伯伯-Coding 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目大意在平面上给定n个矩形,可以相互覆盖全部或者部分,求出矩形占据的总面积。题目分析将矩形按照x方向的进行分割之后,将平面沿着y方向划分一系列单元(不定高度),每个矩形在y方向上占据若干连续的单元;在x方向上,将矩形按照x坐标排序之后,考虑有一个扫描线从左到右扫描,当扫描线进入矩形之后,所有矩形在... 阅读全文
posted @ 2015-09-05 22:08 农民伯伯-Coding 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目大意在墙上贴海报,墙壁是由一排连续的瓷砖铺成,海报贴在墙壁上必须占据连续的几块瓷砖,海报可以互相覆盖,问最后可以看见几张海报(未被完全覆盖)。题目分析墙壁是由连续的一个区间构成,每个海报占据几块瓷砖,即占据一个区间。每次进行贴海报,是进行区间操作,而最后查询有多少个海报可见也是对区间进行查询。对... 阅读全文
posted @ 2015-09-05 18:21 农民伯伯-Coding 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目大意将一些连续的序列根据颜色分为N段,每段有颜色 为 Ci, 长度为 Li。每次点击其中的一段 i ,则可以将该段i消除,该段相邻的两段自动连接到一起,如果连接到一起的两段之前的颜色相同,则更新该段的长度。消除过程可以得到得分 Li*Li。求当所有的段都消除完毕时的最多得分。分析求最优化问题,典... 阅读全文
posted @ 2015-09-04 16:07 农民伯伯-Coding 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目大意给定n个数字,规定一种 cute 排序:序列中的数字大小为严格的波浪形,即 a[0] > a[1] a[3] a[2] a[0])的个数;Down[n][i]表示n个数字构成的,以第i大为首的下降序列(a[1] #include#include#includeusing namespa... 阅读全文
posted @ 2015-09-03 21:47 农民伯伯-Coding 阅读(1058) 评论(0) 推荐(0) 编辑
摘要: 题目大意给定一个由数字组成的#字型网格,和一定的移动规则,问最少需要多少次移动才能达到要求的结果。题目分析要求最少需要几步到达结果,可以考虑广度优先搜索算法,或者迭代加深深度优先搜索(IDA*),这里使用IDA*算法。在剪枝的时候:1. 考虑估价函数H(),表示当前中间八个格子中最少需要移动多少次才... 阅读全文
posted @ 2015-09-03 14:20 农民伯伯-Coding 阅读(209) 评论(0) 推荐(0) 编辑
摘要:     给出一个由2*S*(S+1)构成的S*S大小的火柴格。火柴可以构成1x1,2x2...SxS大小的方格。其中已经拿走了几个火柴,问最少再拿走几个火柴可以使得这些火柴无法构成任何一个方格。     本题,采用的是搜索+剪枝来实现。需要做的是保存每个搜索节点的状态,以及通过合理的记录数据,对状态 阅读全文
posted @ 2015-08-30 17:37 农民伯伯-Coding 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 搜索搜索算法就是在问题的解空间进行搜索,从而得到可行解或最优解。搜索的每一步,都有一个“状态”,搜索的时候需要找到合理的状态,进行搜索。一次成功的搜索就是在“状态”空间中找到一条从起点到终点的路径(可以想象为一棵树从根节点到某个叶子节点的路径)。1. DFS和BFS搜索一般分为两种:深度优先DFS和... 阅读全文
posted @ 2015-08-30 17:03 农民伯伯-Coding 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 题目大意推箱子游戏的基本玩法,求将箱子推到目的地的推动次数最少(并不是人移动总次数)的人移动路径。题目分析求最短路径的搜索问题,使用BFS。注意题目求的是 推动次数最少,因此将箱子移动作为状态,求箱子移动最少次数到达目的地的路径,然后在该路径的拐点基础上再次进行 对人移动的BFS搜索。即BFS套BF... 阅读全文
posted @ 2015-08-28 20:35 农民伯伯-Coding 阅读(320) 评论(0) 推荐(0) 编辑