上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: 题目链接:食物链中文题目,题意很好理解。类似于poj2492 A Bug's Life在这里动物只有3种A,B,C,如果A吃B,我们可以将A对B的偏移量定为1。这题关键在于用一个数组记录每个点相对于根节点的偏移量,在合并两个集合的时候,注意保持当前两个节点的偏移量差为1, 在路径压缩过程中,依然采用递归形式,将路径上的偏移量层层改变,如果A和B偏移量之差为1, A吃B;如果为0, 表示为同类。关键... 阅读全文
posted @ 2010-07-16 13:56 ylfdrib 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 刚想到两点栈规,先假设有n个数要入栈,这n个数依序分别为1到n。第一点:如果整数x入栈(即x为栈顶元素),则小于x的整数必已入栈。第二点:如果整数y出栈(即y为栈顶元素),则大于y的整数必已出栈。有上述两点规则可知:已知x已出栈,如果y出栈,且y<x,则对于整数z(z>y &&z <= x),z必已出栈。进而可以推出另一个结论:如果y = 1刚出栈, y是第k个出... 阅读全文
posted @ 2010-07-16 13:37 ylfdrib 阅读(2348) 评论(0) 推荐(0) 编辑
摘要: 题目:Segment set分析:并查集。这题有两个关键点。第一点:如何判断两条线段是否有交点。第二点:快速查找某条线段所在集合里的线段条数,用并查集实现。线段A(x1,y1)-B(x2,y2),所在直线L1方程为F1(x,y)=0;线段C(x3,y3)-D(x4,y4),所在直线L2方程为F2(x,y)=0;如何判断两条线段有交点:(A,B在直线L2两侧) AND (C,D在直线L1两侧)。用数... 阅读全文
posted @ 2010-07-15 18:16 ylfdrib 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 题目:Farm Irrigation这题很不错的,给的图片让人想不到是并查集,我第一次做的时候用dfs()过的,最近在看并查集,才知道并查集也可以做。关键在于如何建图,如何找到相连关系。对每张图片分析就会知道,每块地的水管都是在中间,分为上、下、左、右四个方向可以通水,分两种模式,一种水平相邻,一种竖直相邻,判断他们能不能相通,先预处理得到每两个字符所代表的土地的关系,读入数据后,对应处理,将每块... 阅读全文
posted @ 2010-07-15 08:48 ylfdrib 阅读(1167) 评论(0) 推荐(0) 编辑
摘要: 题目链接:A Bug's Life分析:很经典的一道并查集,这题关键在如何维护每一个点到集合顶点的偏移量。第一次了解偏移量,还是挺有收获的!对于两个点x,y,分别找到他们的根节点fx,fy。(fx = find(x); fy = find(y);)如果fx == fy则找到一对同性恋者,return,否者:bin[fx] = fy; fx指向fy,为了保证x和y为异性,即相对根节点的偏移量不同,f... 阅读全文
posted @ 2010-07-14 18:09 ylfdrib 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 题目链接:The Suspects很简单的一道并查集,关键在如果保存每个集合的元素个数和如何合并处理。值得学习的一点:把当前集合的元素个数存在根节点上,每次合并的时候,对根节点进行操作即可。应用归类:集合合并,判断两点是不是在同一个集合,查找某一个集合上的元素个数等。代码 阅读全文
posted @ 2010-07-14 11:16 ylfdrib 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Invitation Cards分析:这是我写的第一道SPFA,没想到第一题,尽然以6000多ms的速度爬过,汗!而且加了邻接表优化,这一道题,教会我两个知识点,狂赞:好题!这题大意是:CCS有自愿者每天去各个站点宣传,让别人去看戏剧,要求这P个自愿者一个来回所需的最小花费。先求一次最短路,算出CCS到每个站点的最短距离,加起来,再将所有的边都反向一次,再计算一次CCS到每个站点的最短距... 阅读全文
posted @ 2010-07-13 21:34 ylfdrib 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Sticks分析:这题卡了我好久!!这题大意是有几根相同长度的棒子,现在被分成了n段,想知道他原来没跟棒子最短的长度是多少。由现在n段中最长的棒子长度max,到所有棒子的总长度sum枚举即可。不过这题的剪枝很强,一般的剪枝都会超时,我不知道TLE了多少次,discuss里有组很BT的数据,就算拿我现在0msAC的代码跑,也需要将近3—4ms才能搞定,看来pku数据还是蛮弱的,... 阅读全文
posted @ 2010-07-13 10:01 ylfdrib 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 打导弹解题有感求一个序列的最长上升子序列,可以用贪心的思想来做。例:389 207 155 300 299 170 158 65要求它的最长递减子序列,具体步骤如下:389389 207389 207 155389 300 155 //207被300替换了,207是三个数中刚好小于300的数,207能接的后序列,300照样能接,而且有更大的空间可以接389 300 299 //此次用299替换15... 阅读全文
posted @ 2010-07-12 11:16 ylfdrib 阅读(1796) 评论(4) 推荐(0) 编辑
摘要: 题目链接:Clickomania题目大意:Clickomannia是一款游戏,游戏规则是每次可以消除连续的同色方块,每次消除又会有新的连结,用字符串表示,问你能不能将整个字符串消除完。算法分析:一道字符串题。我用dfs()过的。可以先将字符串缩减一下,将字符串中连续的部分用一个字符加一个数字来表示,用两个数组保存,加快扫描速度,从前往后扫描,每一个当前字符要么自成一串,构成合法序列,然后判断剩余字... 阅读全文
posted @ 2010-07-11 12:19 ylfdrib 阅读(925) 评论(1) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页