图论
文章平均质量分 80
Tri_integral
这个作者很懒,什么都没留下…
展开
-
UVAlive 5869 Airport 解题报告
题目Tri_integral Trainning 4题意:一个图,有两种点:旅店和旅客中心。要建一个机场p,对于每个旅店i,用 s(p,i)表示从机场到某个旅客中心再到这个旅店的最短距离。每个旅店有一个旅客人数t(i),要使 s(p, i)×t(i)的最大值最小。机场可以建在任意点上或边的某个位置上。题解:首先用floyd处理任意一个点作为机场的各 s(p, i)。然后原创 2013-07-29 21:36:24 · 1219 阅读 · 0 评论 -
POJ 4046 Sightseeing 解题报告
题目题意:有一个图,节点为餐厅。道路边权为花费,餐厅有有花费,从某个点出发到某个点时,会选择花费最高度餐厅来消费。现在有Q个游览计划,对每个计划给出最小花费。解法:将餐厅按花费排序,然后依次做SPFA,表示以此餐厅为路上最高花费的餐厅。所以SPFA的时候更高价格的餐厅就不扩展。Time:469msMemory:47836KBLength:3327B#inclu原创 2013-05-19 13:39:23 · 741 阅读 · 0 评论 -
ZOJ 3717 Balloon 解题报告
题意:现有n组气球(气球可以看成球体),每组有一个红气球一个蓝气球,已知每组气球的球心。要求从这n组气球中每组挑出一个气球放入花园中,不允许任意两球之间有重叠,求满足条件的气球的最大半径。解法:因为每组就两个球,很容易想到二分+2 sat。 首先二分枚举半径R。然后建图,若球x与球y的球心距小于R,则x->y',y->x'连边。跑一遍2 sat,并判断一组中的两原创 2013-07-04 14:59:46 · 1062 阅读 · 0 评论 -
poj-openjudge 1042:Moles 解题报告
题目2013北大校赛题意:给出一棵带权树,树根为1,mole当前位于1,有三种操作1 u:mole移到点u,并输出移动的距离2:输出mole所在点到其子孙的最大距离3 u v w:将一棵树边(u,v)的权值改为w思路:一开始想的是树链剖分,但是不会处理2,就算了只好用挫一点的办法了,所以代码巨长......对于2,可以先求得树的dfs序列和每个点到根1的距离原创 2013-07-08 15:00:56 · 890 阅读 · 0 评论 -
HDU 4612 Warm up 解题报告
比赛题目题意:给出n个点和m条边的图,存在重边,问加一条边以后,剩下的桥的数量最少为多少。解法:先用tarjan缩点变成一棵树,然后求树的直径,显然,用一条边将直径的两个端点连起来可以让剩余的桥数量最少。要注意会有重边,在tarjan里面要判一下。//time 1031MS //memory 31340K#pragma comment(linker, "/STACK:10240原创 2013-07-25 19:27:07 · 1783 阅读 · 2 评论 -
ZOJ 3691 Flower 解题报告
题意:给出n个点的三维坐标,每个点上有f盆花,每个点至多只能运出l盆花(有些花是从别的点运到这个点的),只有距离小于r的点可以相互运输,问r最少为多少,可以让所有点的花都运到第一个点上。解法:最大流。把一个点拆成两个aa‘,连容量为l的边,从原点向a连容量为f的边,距离小于r的两点连容量为inf的边。由点1向汇点连边。//Memory: 3824 KB //Time: 280 MS#原创 2013-07-27 19:27:01 · 944 阅读 · 0 评论 -
poj-openjudge 1040:Bamboo Forest of the Lost 解题报告
题目2013北大校赛题意:有一片竹林,分为n个区域,每个区域有k个状态,可能互不相同,但是总的状态数只有sk个。时间每过1单位所有区域的状态都会变化,周而复始,每个区域的变化顺序都会告诉你。区域间有m条无向边,每条边连接u和v,行走时间花费是d(e),精力花费floor(w(e)×f(p(u,i),p(v,j))),其中p(u,i)是从u出发时u的状态,p(v,j)是到达v时v原创 2013-05-18 00:58:16 · 1015 阅读 · 0 评论 -
UVALive 6195 The Dueling Philosophers Problem 解题报告
题意:给出一些论文,一些会被另一些引用,被引用的论文必须排在引用它的论文的前面。如果存在大于一个个合法的顺序输出2,存在一个输出1,不存在输出0.解法:裸的拓扑排序,但题目m的数据范围少了一个0,被坑了一下午,天灾人货//time 162 MS#include #include #include #include #include using namespace std;co原创 2013-07-21 20:49:04 · 1367 阅读 · 0 评论 -
UVALive 5862 City Travel 解题报告
题意:给n个点m条边的图,每条边有等级,不能连续走两条等级相同的边,求s到t的最短路。解法:最短路的变形,用二维的spfa,dist[i][j]表示经过等级为j的边到点i的最短路。但初始化的时候要注意是把dist[s][0]放进队列。//time 29ms#include #include #include #include #include #include using n原创 2013-07-23 20:26:52 · 882 阅读 · 0 评论 -
HDU 4619 Warm up 2 解题报告
题意:给定1×2的多米诺骨牌,放在平面上,可以水平放也可以竖直放,保证水平和水平的之间不重叠,竖直和竖直的不重叠,但水平和竖直的可能重叠。拿走一些牌使它们,不重叠,求平面上最多可以剩张牌。解法:在重叠的牌之间连边构成二分图,有边相连说明至多只有一张牌能留在平面上。YY出来的结论是,用总牌数减去最大匹配即为所求。//time 31MS //memory 1332K#include #i原创 2013-07-25 19:05:53 · 1196 阅读 · 0 评论 -
SPOJ AMR12A The Black Riders 解题报告
题目题意:有n个人,m个洞,已知每个人到每个洞花的时间。每个洞只能能容纳一个人,但是有人到达之后C时间后就可以容纳第二个人(上限是两个)。求至少K个人躲进洞的最少时间。题解:把洞拆成两个,二分答案mid。如果一个人到某个洞在mid-c前的话,人就连向洞的第一个点,如果在mid前到达的话,就连向第二个点,两条边可以共存的。然后跑二分图,看最大匹配。//Time:380ms原创 2013-08-04 16:09:43 · 1150 阅读 · 0 评论 -
URAL 1699 Turning Turtles 解题报告
题意:给定一个w*h图,'#'可以走,'.'不可以走,且保证任意两个可达的'#'之间有且只有一条路,给出q个询问(x1, y1, x2, y2),问位于(x1, y1)的'#'要到(x2, y2)的'#'要转过几个弯思路:有题易知,图可以看成一棵一棵的树,问题就可以变成求树上两点间距离,很容易求出点(x1, y1)到其树根节点(x0, y0)需要转几个弯,现在要考虑的问题是:已知两点到根的“距原创 2013-05-24 00:50:28 · 1159 阅读 · 0 评论 -
ZOJ 3710 Friends 解题报告
题目题意:有n个人,有些人之间有朋友关系(对称),假如两个人不是朋友,但是至少有m个共同好友,则他们也会成朋友,问最后会新增多少朋友。解法:类似于拓扑,a,b成为好友时,若c与a不是朋友,但与b是朋友,则ma[c][a]++,达到k时就塞到队列里。//Time:180ms//Memory:244KB//Length:1707B#include #include #in原创 2013-05-30 20:03:56 · 917 阅读 · 0 评论 -
URAL 1382 Game with Cards 解题报告
题目比赛题意:有N张牌,N个人,每个人会说两句话,"我拿着牌a"和"b拿着牌c",这两句话中有且只有一句话是对的。求每个人说的话中哪一句话是对的,题目保证一定有解思路:2-sat,对于第i个人,有第一句是对的I1,第二句话是对的I2两种互斥的状态,可以把I1看成"i拿着牌a",则当两句话中人相同牌不同时,或者人不同牌相同时,这两句话产生冲突,然后就套用2-sat输出解的模板原创 2013-07-07 17:10:07 · 1073 阅读 · 0 评论 -
UVALive 5864 Register Allocation 解题报告
题意:给出平面上n个点的坐标,给出起点和终点,找出一条路径使得起点到重点的经过的最长边最短,并输出这个最短的值。解法:二分长度+bfs判断是否可以到达//112ms#include #include #include #include #include #include #include const int maxn = 1005;using namespace std;原创 2013-07-23 20:32:21 · 887 阅读 · 0 评论 -
HDU 4606 Occupy Cities 解题报告
题目题意:有n个城市,m个边界线,p名士兵。现在士兵要按一定顺序攻占城市,但从一个城市到另一个城市的过程中不能穿过边界线。士兵有一个容量为K的背包装粮食,士兵到达一个城市可以选择攻占城市或者只是路过,如果攻占城市,就能装满背包。从城市到城市消耗的粮食等于两城市的距离,如果距离大于士兵当前的背包的容量,士兵就不能走这条路。士兵可以选择空降一次,空降不耗费。求p个士兵攻占完所有城市所需要的最小原创 2013-07-25 20:32:58 · 1056 阅读 · 0 评论 -
HDU 4635 Strongly connected 解题报告
题目2013 暑假多校训练 4总结题意:一个有向图,如果是强连通就输出-1,如果不是,你可以不停加边,求使其依然不是强连通图的最多可加的边数。不能有重边或自环。题解:最优解形成的图一定是个完全图删边成有且只有一个点只有入边或出边,即边数为n*(n-1)-(n-1)。但是可能图里含有强连通分量,所以tarjan缩点后,要在所有只有入边或出边的点里选一个点作为上述的特殊点。原创 2013-08-01 18:06:57 · 1028 阅读 · 0 评论 -
UVALive 5796 Hedge Mazes 解题报告
题目题意:一个无向图,每次查询两个点s和t,判断是否s到t间存在且只存在一条简单路径。题解:若只存在一条简单路径,那么删掉路径上任意一条边,s和t 都变得不可达,也就是说路径上的边都是桥边。那么如果删掉所有非桥边,符合条件的点对就必须在同一个连通分量里。//Time:126ms//Memory:1775B#include #include #includ原创 2013-09-01 20:31:55 · 1130 阅读 · 0 评论