
PKU暑课笔记
文章平均质量分 82
海蛎丝Ssss
这个作者很懒,什么都没留下…
展开
-
[PKU暑课笔记] 趁机膜一发线段树和树状数组
一●线段树 Interval Tree(区间树)树:一棵二叉树线段:树上的每个节点对应于一个线段(区间)[a,b](区间的起点和终点通常为整数)同一层的节点所代表的区间,相互不会重叠,且加起来是个连续的区间。每一个叶子节点表示了一个单位区间(长度为1),不能再分。 对于每一个非叶结点所表示的结点[a,b],其左儿子表示的区间为 [a,(a+b)/2],右儿子表示原创 2017-08-07 17:02:21 · 334 阅读 · 0 评论 -
[PKU暑课笔记] 动态规划 POJ1163数字三角形
●POJ1163数字三角形在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。三角形的行数大于1小于等于100,数字为 0 - 99。思路:1、用二维数组存放数字三角形。 2、D(r, j) : 第r行第 j 个数字(r,j从1开始算)原创 2017-08-02 14:38:00 · 367 阅读 · 0 评论 -
[PKU暑课笔记] 二分查找 分治
一、二分查找●写一个函数BinarySeach,在包含size个元素的、从小到大排序的int数组a里查找元素 p,如果找到,则返回元素下标,如果找不到,则返回-1。int BinarySearch(int a[],int size,int p) { int L = 0; //查找区间的左端点 int R = size - 1; //查找区间的右端点 while( L <=原创 2017-07-17 21:12:34 · 285 阅读 · 0 评论 -
[PKU暑课笔记] 动态规划(二) 最长上升子序列 POJ1458最长公共子序列
五●例题●最长上升子序列1、子问题:求以ak(k=1, 2, 3…N)为终点的最长上升子序列的长度(一个上升子序列中最右边的那个数,称为该子序列的 “终点”)2、确定状态:子问题只和一个变量--数字的位置相关。因此序列中数的位置k就是“状态”,而状态 k 对应的“值”,就是以ak 做为“终点”的最长上升子序列的长度。状态一共有N个。3、状态转移方程:maxLen原创 2017-08-04 14:28:17 · 1101 阅读 · 0 评论 -
[PKU暑课笔记] 动态规划(三) 最佳加法表达式 百练2755 POJ3624背包问题
ヾ(●´∀`●) OpenJudge 最佳加法表达式 http://cxsjsxmooc.openjudge.cn/2017t2springhw5/3/思路:假定数字串长度是n,添完加号后,表达式的最后一个加号添加在第 i 个数字后面,那么整个表达式的最小值,等于在前 i 个数字中插入 m – 1个加号所能形成的最小值,加上第 i + 1到第 n个数字所组成的数的值(i从1开始算)原创 2017-08-04 14:56:05 · 777 阅读 · 0 评论 -
[PKU暑课笔记] 广度优先搜索BFS POJ3278抓住那头牛 POJ3984迷宫问题
一●引入POJ3278 Catch That Cow http://poj.org/problem?id=3278题意:农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛原创 2017-08-04 19:04:18 · 931 阅读 · 0 评论