摘要: 题意: dos命令的cd操作有两个可执行方法 cd .. 回到上一级目录 cd 当前目录名/b/c/d 当前目录名到某一个子目录下 给出你目录的关系,然后给出a b问最少经过几步可以从a走到b..思路: 求出a和b的最近公共祖先,然后分4种情况讨论 ①. a和b有一个公共祖先c,则用 c时间戳-a的时间戳+1(1步可以直接从c到b) ②. a是b的祖先,则只用1步就可以到达b点 ③. b是a的祖先,则用a的时间戳-b的时间戳 ④. a和b是同一个点,则答案是0Tips: 求绝对值的函数还是得自己写.. 用algorithm的就wa了.. 因为algorithm... 阅读全文
posted @ 2013-06-05 17:03 Griselda. 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 题意: 有3个操作 D a 毁坏某一个点a R 修复上一次破坏的点 Q a 问a点附近连续的点有几个思路: 区间合并类的线段树 结构体表示 { l:节点的左界限 r:节点的右界限 ll:左起连续的点数 rr:右起连续的点数 mm:整个范围内连续最长的点数 }Tips: 主要是更新那一块要考虑父节点可能是由左右节点边界合并的 询问那一块要考虑是否可以和兄弟节点合并Code: 1 #include <stdio.h> 2 #include <cst... 阅读全文
posted @ 2013-06-05 16:32 Griselda. 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题意: 知道一个人买票花的时间和和前面那个人一起买票花的时间,问最少花多少时间可以把票卖完.. 输入: 给出T,表示有T组样例 给出n,表示有n个人买票.. 给出n个数表示这个人单独买票会花的时间.. 给出n-1个数,表示这个人和前面那个人一起买票会花的时间.. 思路: 状态转移方程是:dp[i] = min(dp[i-1]+单独买花的时间, dp[i-2]+和前面那个人一起买花的时间) 初始状态是dp[1] = 第一个人单独买话的时间 Tips: nothing..??!Code: 1 #include <stdio.h> 2 #include ... 阅读全文
posted @ 2013-06-05 14:39 Griselda. 阅读(1181) 评论(0) 推荐(0) 编辑