
图论
文章平均质量分 74
SaltyFishWei
这个作者很懒,什么都没留下…
展开
-
POJ3169 Layout(差分约束)
有N头奶牛要排成一列,对于给定的规则 A B w 表示B距离i至多为w,A B w 表示B距离i至少为w,求这N头奶牛至少能够排成多长。如果排不成一列,输出-1,如果可以排成任意长的距离,输出-2这道题带领我复习了一遍差分约束,学了好久几乎忘完了。题目给出的条件可以视作 dis(b) - dis(a) = w,dis()表示i点到原创 2015-08-11 19:55:53 · 461 阅读 · 0 评论 -
UVA11374 Airport Express(SPFA求最短路)
城市里面有n个站点,一些站点之间通过双向边相连。现在在一些站点之间可能有快速路,可以减少通行的时间,但是你只能经过一次快速路。问到终点的最少时间,并输出方案。思路还是很好想,输出就有点蛋疼了。设d1[i]表示起点到i的最短距离,d2[i]表示终点到i的最短距离。枚举每一条可能使用的快速路(a,b),用d1[a]+w(a,b)+d2[b]或d1[b]+w(a,b)+d2[a]去更新答案,最小的那原创 2016-04-05 20:33:52 · 482 阅读 · 0 评论 -
NOIP2009 最优贸易(BFS)
本题正解是tarjan,我没有去写之前的代码是错误的不好意思,由于数据太弱一直没有发现。同样还是两遍bfs,一次正向,一次反向。在正向的时候我们求出从起点走到各个点的最小值,在反向的时候求出从终点走向起点的最大值。这样一来,便可以知道对于每一个点i,在1到n的路径上面,经过的最大值是多少,经过的最小值是多少,最后max(mx[i]-mp[i])就是要求的答案。原创 2015-08-10 21:34:38 · 870 阅读 · 0 评论 -
COCI2014/2015CONTEST #3 honi&stogovi(LCA)
第四题HONI:给出n位选手,以及每位选手两场比赛的得分。如果一位选手的两场比赛都严格大于另一位选手的两场比赛的得分,那么他第三场比赛成绩也严格大于那位选手的得分。如果两位选手的比赛总分相等,排名不分先后。求n位选手可能的排名。模拟赛的时候实在想得太多太多了,居然用了拓扑排序- -,然后暴搜方案数;最后想到了严格大于,结果没有想到区间求和,实在遗憾啊!正解是统计二维区间前缀和。最先用树原创 2015-09-07 17:05:48 · 725 阅读 · 0 评论 -
SGU101 Domino(欧拉回路)
给定你n张骨牌,每张牌左右两端有一个数字,每张牌的左右两端数字可以颠倒,找出一种摆放骨牌的顺序,使得相邻骨牌的两端数字相同(最左边骨牌的最左端和最右边骨牌的最右端可以不管)。最先想到把每个数字缩成点,然后发现这样连边都有问题,于是翻了翻各种题解,大概是这样的:把每个骨牌缩成两条边,分别对应正反两种情况,在数字之间连线,找出一种能够遍历所有骨牌的方案,然后就变成了一笔画问题。正向遍历骨牌的时候为原创 2015-09-08 21:30:42 · 801 阅读 · 0 评论 -
POJ1062 昂贵的聘礼(最短路)
说白了就是给你一张图,每个点有一个等级限制,在等级限制以内求一条最短路。构图方法:首先将原点0连向每一个物品对应的编号,那么边权为物品的初始价格;如果对于物品j,如果有了物品i,那么j的优惠价为w,就在i,j之间连一条权值为w的边。最后枚举等级的范围(注意等级的上下差为m,其中包含了酋长的等级,而不是与酋长等级差的绝对值小于等于m QAQ),求到原点到酋长(0号点到1号点)的最短路。#in原创 2015-08-17 16:59:53 · 540 阅读 · 0 评论 -
NOIP2010 关押罪犯(图论+二分)
考试的时候写的最大生成树,然后二分图染色,因为这样两个矛盾很大的罪犯不会被分在一个监狱里面。然而最大生成树超时,80分。正解为二分边权,将边权值大于mid的全部连边构图,判断是否为二分图,如果不是二分图,那么无解。如果无解,则说明边权的限制条件太小了,因为连的边太多,不容易形成二分图;如果有解,则说明边权的限制条件太大,因为更少的边有利于形成二分图。80分代码,最大生成树:#i原创 2015-08-16 20:39:04 · 978 阅读 · 0 评论 -
POJ3621 Sightseeing Cows(最优比率环)
题目链接:http://poj.org/problem?id=3621在一个有向图中选一个环,使得环上的点权和除以边权和最大,求这个比值。经典的分数规划问题,我觉得这两篇题解写得很清楚,可以参考一下http://blog.youkuaiyun.com/gengmingrui/article/details/47443705,http://blog.youkuaiyun.com/wall_f/article/det原创 2015-08-12 21:26:31 · 1624 阅读 · 0 评论 -
NOIP2013 货车运输(最大生成树+LCA)
模拟考试的时候暴搜,结果写丑了,分都不分下来啃了一下题解,发现要用到一个叫做倍增的东西,还没有学过。但是老师说的,没有那个东西,写暴力也有30~40分。。。我觉得最大生成树还是很好理解的,因为我们要求的是图中任意两个点之间的路径上,使得边权的最小值尽量大。因此首先求最大生成树。当我们得到最大生成树后,要求两个点之间边权最小值,我们可以首先找到他们的公共祖先。这里有一篇写得很详细的代码,原创 2015-08-11 21:28:58 · 4263 阅读 · 1 评论 -
POJ3635 Full Tank?(最短路+DP)
n个城市之间有m条双向路。每条路要耗费一定的油量。每个城市的油价是固定并且已经给出的。有q个询问,表示从城市s走到e,油箱的容量为c,求最便宜的方案。 dp(i,j)表示走到城市i,剩余油量为j的最小花费。然后用优先队列更新,优先更新花费小的状态。走到一座城市,要么加油,要么走向下一个城市(在油量充足的情况下)。#include<cstdio>#include<cstring>#include原创 2016-03-27 22:54:02 · 3345 阅读 · 0 评论