摘要:
之后把自己从网上找到的题目放在这里,因为可能目前补数据结构,题目不能一下子切完网络流:网络流与线性规划24题线段树与矩形切割:POJ 20题线段树http://blog.renren.com/share/279182900/1290893180线段树还有这个http://www.notonlysuccess.com/index.php/segment-tree/单调队列+斜率优化http://www.notonlysuccess.com/index.php/dp_optimize/网络流的题目http://www.notonlysuccess.com/index.php/network/ 阅读全文
posted @ 2012-04-06 20:16
F.D.His.D
阅读(189)
评论(0)
推荐(0)
摘要:
POJ 3468题目之前的吐槽:最近记忆力真的差很多了,刚刚做完来写解题报告,题目编号已然不记得….题目大意:给出n个数,我们有两个操作,q,x,y:询问区间[x,y]的和,c,x,y,z:区间[x,y]里的每一个数+z。解:树状数组,线段树,以及discuss里说splay可做。做这题目前用的线段树。线段树的常数真心恶心,递归就算了,而且clear操作写成函数那个常数大得我不敢看了,可是不写成函数又会把自己恶心到。主要是靠一个lazy操作,有一个tag域,如果这个区间在增加的区间内,tag累加,tag表示这个区间要加的数,然后每进入一条线段,clear,更新sum,tag直0,并且把tag传 阅读全文
posted @ 2012-04-06 20:13
F.D.His.D
阅读(322)
评论(0)
推荐(0)
摘要:
POJ 1151题目大意:给出n个矩形(通过给出对角坐标确定),这些矩形间可能有重叠,求除去重叠后覆盖的面积是多少。解:矩形切割,只是用线段树去维护线段达到logn的效率。View Code 1 //poj 1151 2 const 3 maxn=1111; 4 inf='1.txt'; 5 type 6 type_node=record 7 mid, l, r, flag: longint; 8 x1, x2, cnt: double; 9 end; 10 ... 阅读全文
posted @ 2012-04-06 20:13
F.D.His.D
阅读(184)
评论(0)
推荐(0)
摘要:
POJ 2777题目大意:有len个区间,每次为[x,y]区间上色,然后有询问操作,问[x,y]区间上有多少种颜色。解:线段树维护,1wa是因为没看见x可以大于y并作出相应处理然后2wa3wa就是细节问题了,大体是l,r和s,e混淆。然后tle,是因为lazy写错了,正解应该是如果包含则直接改值,当以后如果在改的区间内,这个区间只有一个颜色的话,记得把原来的颜色递归给儿子,把c置0再递归处理(因为区间的划分决定了你目前所在的区间一定包含我们要涂改的区间的子区间,如果这个区间只有一个颜色那么新的子区间的插入就会改变这个情况,所以lazy标记置0,并一定要把原来的颜色递归下去!不然对这些子区间的询 阅读全文
posted @ 2012-04-06 20:10
F.D.His.D
阅读(167)
评论(0)
推荐(0)
摘要:
POJ 2528题目大意:同上,只是x,y属于[1,10000000],最后询问能在这个[1,10000000]区间上能看见多少种颜色。解:线段树+离散化,把可能的端点值存起来,排序,在对应回去,然后线段数即可,1re是因为tree数组的大小没有考虑到端点数*2而再*2,2tle是因为find写错了,然后3wa是因为离散化?这里是个重点,因为离散化之后比如[1,2][4,5],虽然中间有区间[3,3]但是如果按上文离散化则会出问题,奇怪的是我的处理+上这个判断,如果两个数之间有其他数,则再离散化多这个中间数,但是wa了,有空回来复习的时候检查一下,把特殊处理删除反而ac了,第二天过来看,看了别 阅读全文
posted @ 2012-04-06 20:10
F.D.His.D
阅读(196)
评论(0)
推荐(0)
摘要:
POJ: 3264题目大意:给出n个数,给出一个区间[x,y],求这个区间的最大最小值。解:可以用rmq的st算法,有空去切一下,这里用了线段树,入门,练习了构树和查询,不过自己对于左右端点的掌握还是需要犹豫。看到别人写了一个树状数组的写法,挺神的,有空写下,刷刷排名。研究了一下,对于修改删除的题不适用,改过则必须重新初始化。或者自己写一个链表?可能可以对付删除情况?线段树 1 //poj 3264 2 const 3 maxn=51111; 4 inf='1.txt'; 5 type 6 data=record 7 l, ... 阅读全文
posted @ 2012-04-06 20:09
F.D.His.D
阅读(348)
评论(0)
推荐(0)
摘要:
POJ 2942题目大意:有n位骑士,他们间有一些仇恨关系,如果有仇恨则开会的时候不能坐在两侧,求至少删除多少名骑士,使得总可以找出奇数个骑士和平地坐下来开会?解:我挺天真的,一开始就去研究它给出的关系图,想了好久才去建补图。发现如果是可以坐在一起的话补图上就是一个圈,任务就是找奇圈,然后自己草莽地写了一个边双连通分量算,wa,调了略久,没思路,看题解,发现是点双连通(边双连通内可能有关节点,但是点双连通内一定没有桥,所以如果只是算出边双连通可能会因当中包含关节点而出错),况且我也是理解错题意了,我以为是找最大奇圈,但实际上是把所有的可能都算出来。正解首先是求点双连通,没找到一个块,对这个块进 阅读全文
posted @ 2012-04-06 20:08
F.D.His.D
阅读(349)
评论(0)
推荐(0)
摘要:
POJ 1192Noi的题>.<题目大意:给出一些点,坐标都是整数,如果两个点的距离为1,则说明相邻..(省略繁琐题意),删点后连通……总之就是构建了一棵树,每个节点有一个权值,求这棵树的一颗子树,有权值最大。解:首先说下自己的二点,没看到树的性质(每两个点有且只有一条路径联通),然后刚刚切完一系列的双连通分量,很激动的用贪心,每次去除掉一个当前权值最小且非割点的的点=。=然后wa掉,检查半天,最后看discuss才知道完全是自己的题意理解错了,况且如果是图我这个是从本质上贪心不能,因为有时不一定去点,还可以有整个枝条不要的情况,每次去一个点贪心是做不到的,正解treedp,fjy 阅读全文
posted @ 2012-04-06 20:06
F.D.His.D
阅读(278)
评论(0)
推荐(0)
摘要:
POJ 1985题目大意:在一棵树上求一条最长的路径(题目描述根本没说= =,看discuss才知道)解:听说可以两次bfs,不知道怎么做了,有空去研究下回来写报告。我是treedp,有dep记录当前节点向下最长的路径,f为当前节点可以有的最长路径,有更新f[x] = max(f[everyson], dep[firstmaxson]+cost+dep[secondmaxson]+cost).貌似输出f[根]?我则保险遍历了f一次囧。 阅读全文
posted @ 2012-04-06 20:06
F.D.His.D
阅读(155)
评论(0)
推荐(0)
摘要:
POJ 3694题目大意:给出一副联通的无向图,求加上一条边后还有多少条桥,多次加边。解:其实就是tarjan求桥加lca,这里可以朴素记录深度,向上回溯,取消桥的标记即可。我挺二的,首先把最少边使得不存在双连通分量和加边取消双连通分量搞反了,然后去看了lca和rmq,lca不是很懂tarjan的做法,有空去看下。然后就是做题的时候记录了哪些边是桥,wa,其实只要记录点即可,如果一个点是桥标记,则说明他到他父亲这条边是桥,ac。然后_gxx的做法很神奇,首先遍历出一棵树,然后把剩下的原始边加上去,lca,覆盖桥标记(一开始的全是桥),然后新加的边也是这样处理即可。还有就是桥标记的判断是dfn[ 阅读全文
posted @ 2012-04-06 20:03
F.D.His.D
阅读(234)
评论(0)
推荐(0)
摘要:
POJ 3159题目大意:给n个小朋友们分糖果,其中有m个关系a b c,代表A允许B比自己最多多C个糖果,求第一个小朋友到第n个小朋友的糖果数的差最大是多少(满足这m个条件下)解:题目有隐藏题意,第n个小朋友(即班长要比1多),所以这些条件就是一个差分约束,然后求1到n的最短路即可(dist[x]表示1允许x比自己多多少,把关系传递,显然是一个最短路模型,如果存在一条1到x的路比已知短,显然要更新才能满足题意。),初始化全部为bilibili,dist[1]为0,鬼畜的是即使是spfa+slf+queue也会tle,但是用spfa+stack就会很快(我刷上第四名),300+ms,dij+h 阅读全文
posted @ 2012-04-06 20:01
F.D.His.D
阅读(223)
评论(0)
推荐(0)
摘要:
POJ 3621题目大意:在一幅有向图上,求有一个环,使得环上的点权a与边权和b,有a/b最大。解:我觉得这个算数学题了,分析很巧妙,我还想爆搜什么的若爆了。01分数规划问题,这里的问题转换为ans = sum(v[i]*x[i] / e[i]*x[i]);x[i]为0或1,表示取或不取,所以x就是使命题成立的一个选择,默认符合题意。所以把式子整合: ans=v/e * x;∴ ans*e-v=0所以我们二分枚举ans,当枚举点mid比ans大时,就会有 mid*e-v>0,如果小于,则是问题的关键,会有mid*e-v<0,也就是说,在图上会有一个负环。所以构图 分析 ans=v/ 阅读全文
posted @ 2012-04-06 19:59
F.D.His.D
阅读(148)
评论(0)
推荐(0)
摘要:
POJ 3177题目大意:同poj 3352。解:同poj3352,但记得处理重边的问题。View Code 1 //poj 3177 2 const 3 maxn=5111; 4 maxm=11111; 5 type 6 data=record 7 dest, next, op: longint; 8 end; 9 var 10 edge: array[1..maxm*2]of data; 11 pre, dfn, low, deg, vect: array... 阅读全文
posted @ 2012-04-06 19:54
F.D.His.D
阅读(264)
评论(0)
推荐(0)
摘要:
POJ 3352题目大意:一幅图,至少加多少条边后,使得任意断开一条边都不会把图分裂成两部分。解:求双连通分支的数量,就是把所有边双连通分量缩点,构树,答案为叶节点数目+1 >> 1;(证略)备注:有很二的地方,缩点统计想关于同一个双连通分量多次指向另一个双连通分量怎么办= 。=,明明叫双连通分量,怎么会有多条边连向其他分量呢?如果是他们也合并成一个双连通分量了。View Code 1 //poj 3352 2 const 3 maxn=1111; 4 maxm=1111; 5 type 6 data=record 7 ... 阅读全文
posted @ 2012-04-06 19:53
F.D.His.D
阅读(190)
评论(0)
推荐(0)
摘要:
POJ 2983 又是一条给我贡献wa率的题目。问题大意:有一些点在同一直线上,给出他们之间的距离的关系(要么指定比他在北边多少,要么只告诉你在他北边(至少远1单位),求这些关系是否成立。解:一开始觉得是差分约束,但是不想写bellman-ford,所以写了一坨if流,结果wa掉,看题解,写差分(用spfa),wa,wa,wa,wa,然后去orz _gxxd的程序,也没搞懂什么。最后得知判断条件是dist[u]+cost>dist[dest] then更改dist[dest]的值符合条件。然后关键点是如果是指定了远多少的边,一定要建立一条逆边,以便检查dist[u]+cost==dist 阅读全文
posted @ 2012-04-06 19:51
F.D.His.D
阅读(380)
评论(0)
推荐(0)
摘要:
POJ 2749题目大意:给出若干个牛棚的坐标,现有两个点d1, d2(交通枢纽点),d1, d2之间有一条路(本题两点的路程为横坐标之差和纵坐标之差的绝对值),求牛棚连到d1,或d2,任意两个牛棚之间最大值的最小值是多少。他还加了一个约束条件,就是给出a对牛棚,每对牛棚是不能连在同一个枢纽点,再给出b对牛棚,每对牛棚一定要连在同一个枢纽点。解:上网找做法,说这个是一种2sat模型,属于np模型、主要是讨论有节点关系为一定共存和一定不共存这样一些的图。这道题目也是一样(要么不能一起,要么一起),核心思想是二分答案(和noip2010 no3类似,有时间复习),然后建图讨论是否可行。设x为x处于 阅读全文
posted @ 2012-04-06 19:50
F.D.His.D
阅读(187)
评论(0)
推荐(0)
摘要:
POJ 2230题目大意:给出一副联通无向图,求从起点1开始,每条边走两次,回到起点的的一种路径方案。{SPJ}解:我感觉和欧拉回路有点像,然后是分析性质,把每条无向边拆成两条,可以发现,从任意点的欧拉回路都是存在的(奇数乘偶数=偶数>.<), 然后我是用了一种无赖走法,把剩余的点看成一个大点,然后走去这个大点再走回来,进入大点后不断缩小规模。主要的问题是判断点是否走过(度走完)以及边是否走过。View Code 1 //poj 2230 2 const 3 maxn=11111; 4 maxm=51111; 5 type 6 data=rec... 阅读全文
posted @ 2012-04-06 19:47
F.D.His.D
阅读(283)
评论(0)
推荐(0)
摘要:
POJ 1904题目大意:有n个王子和n个美人,每个王子喜欢一些美人,如果一个王子要娶一个美人,必须是他喜欢的。现在国王的巫师给出了一个完美匹配表(每个王子都能娶到他喜欢的女孩),现在国外想知道在不影响全部王子能娶到老婆的前提下,每个王子能有哪些选择?解:重复许多人的话:这是一条好题。一开始我自己觉得意识模糊,于是不断删去唯一的匹配边(只有一个王子喜欢的女孩和只喜欢一个女孩的王子),然后默认其他的都可以替换。其实也意识到了是一个增广路的模型,只是没有去细想,想当然会tle的。正解则是在增广路的基础上,因为给出了一个完美匹配。所以设目前王子为xi, 他初始匹配的美人为yi,如果王子选择了其他美人 阅读全文
posted @ 2012-04-06 19:46
F.D.His.D
阅读(326)
评论(0)
推荐(0)
摘要:
POJ 3422题目大意:原题的加强版,k取方格数。解:dp,dp+降维,因为这里k可以到10,用最大费用流做。先拆点,一个点变成两个点,点中间有两条边,一条费用为该方格数,流量为1,(其负边的费用是负,一开始没想到wa了好久),另一条边费用为0而流量为无限。每次找一条去到汇点的最大费用路。然后找出最小流,用pre记录前缀,从汇点回溯到原点,并更新每条边的流量。注意原点到1,1的流量为maxlongint,n,n到汇点的流量为k。这里也是wa的地方。View Code 1 //poj 3422 2 const 3 maxn=(52 * 52) << 1; 4 ... 阅读全文
posted @ 2012-04-06 19:44
F.D.His.D
阅读(325)
评论(0)
推荐(0)
摘要:
POJ 1236题目大意:有n间学校,他们之间存在一些网络线路, 例如a->b 则是学校a可以传递信息到学校b(单向), 现在有一个软件需要被传达, 拷贝给一个学校, 让它去通过线路传给其他学校。问最少要拷贝给多少间学校, 是所有学校都可以被传到到(问题1), 问题二则是至少要构建多少条线路, 使得随便给一个学校软件, 都可以传达到其他学校?解:囧, 效率好慢。正解是用强连通分量算法缩点, 然后问题一是对应找入度为零的点的个数(显然, 入度为零则没人传递, 要作为一个源点), 这个倒是想出来了。而问题二自己犯傻×想错了性质, 我是找入度为零的点*2+有入度的点*1…, 这个显然 阅读全文
posted @ 2012-04-06 19:43
F.D.His.D
阅读(163)
评论(0)
推荐(0)

浙公网安备 33010602011771号