Peng Lv

毋意,毋必,毋固,毋我。 言必行,行必果。

导航

2010年4月24日 #

POJ 2227 The Wedding Juicer (BFS+优先队列)

摘要: 题意:给定n*m地图,其中高度不同,问最多能存多少水(和木桶一样,最外层不能存水)。思路:黑书上有讲,从最外围的点开始加入到队列,每次取高度最小的点,然后看其子结点,如果高度大于自己那么加入队列,否则填充水量和自己高度相同,加入队列,可以证明这样做可以得到最优解,因为开始时最外围的点是不能够存水的,因此这个算法就是从"外"(高度最小)向"里"找,依次删除不能够存水的节点即可。PS: 这个题做的太戏剧性了,敲完代码,发现机房机子中毒,exe文件没法执行(又要重装了.....),不能Debug,编译一遍检查无误,然后狠狠心裸交,结果有个变量未定义,返回RE. 阅读全文

posted @ 2010-04-24 17:35 Lvpengms 阅读(651) 评论(0) 推荐(0) 编辑

POJ 3687 Labeling Balls (拓扑排序)

摘要: 题意:给定m个球的关系,求出具有最小字典序的各个球的重量。思路:拓扑排序,但是不能建正向图,只能建反向图,具体解释见Answeror牛:  http://www.answeror.com/archives/23913PS:图论中的技巧太多,只靠做题感觉是亡羊补牢,只有把理论知识搞透彻,才能真正明白各个题中隐藏的数学原理,向这样正向和反向图中的细微区别也就yin不了人了...[代码] 阅读全文

posted @ 2010-04-24 11:20 Lvpengms 阅读(1417) 评论(0) 推荐(0) 编辑

POJ 1990 MooFest (树状数组)

摘要: 题意:由n头牛,不同的听力值v,当i,j想要通话时,需要max(v(i),v(j))*(dist[i]-dist[j])的volume,问这n*(n-1)/2对牛总共的volume时多少。思路:非常好的一道树状数组,自己想了很长时间没想起来,最后看了结题报告才恍然大悟,对n头牛按v进行排序,由小到大,tre_sumx[i.x]记录前i头牛于x的坐标的总和,tre_cnt[i.x]记录前i头牛坐标低... 阅读全文

posted @ 2010-04-24 10:08 Lvpengms 阅读(683) 评论(0) 推荐(0) 编辑

POJ 1195 Mobile phones (树状数组)

摘要: 题意:给定n*n矩阵,和几种在线操作,包括对某一点(x,y)值修改,查询一个矩形(x1,y1,x2,y2)的元素和。思路:典型的在线查询,可用树状数组实现,查询矩形和时,稍微注意以下就可以了:  sum(x2,y2)+sum(x1-1,y1-1)-sum(x1-1,y2)-sum(x2,y1-1);还要注意树状数组的修改操作modify(index,delta)中的index要>0。[代码] 阅读全文

posted @ 2010-04-24 10:01 Lvpengms 阅读(627) 评论(0) 推荐(0) 编辑

POJ 3067 Japan (树状数组)

摘要: 题意:顺序给两组平行的点依次编号1~N和1~M,给定K个线段在两组点之间,求相交(cross)的线段对有多少个,同一个起点或终点不算相交。思路:由于题目涉及到统计和的问题,自然可以交给树状数组来做,方法和Cows差不多现对线段进行排序,按w由大到小,如果w相等,按e从大到小(必要),最后遍历,修改查询就可以了。[代码] 阅读全文

posted @ 2010-04-24 09:56 Lvpengms 阅读(656) 评论(0) 推荐(0) 编辑

POJ 2155 Matrix (树状数组)

摘要: 题意:给定一个0-1矩阵,在线对(x1,y1),(x2,y2)之间的元素置反,在线对特定矩阵求和。思路:一道二维树状数组,思路还是挺清晰的,由于是0-1矩阵,只需用tre[][]记录一个元素被置反的次数即可,当对(x1,y1),(x2,y2)区间置反时,需要改动四个地方就是4个角就可以了。为什么呢?如下图,假设A区未需要置反的区域,因为改动A区的左上角时,由树状数组的性质知:A,B,C,D4个区域... 阅读全文

posted @ 2010-04-24 09:51 Lvpengms 阅读(1796) 评论(2) 推荐(0) 编辑