ACM/ICPC图论_水题
just_sort
Acdream.
展开
-
Hdoj 4786 Fibonacci Tree
题目传送门题意:给你一个图,图中边颜色为白色(1表示)或者黑色(0表示),问你是否能找出一棵树,使这棵树中白边的总数量的值为Fib数。点数n和变数m均为不大于1e5的数。分析:这是最小生成树的变形题,用Kruskal求解,我们可以通过求两次最小生成树得到白边数量的上下限,再判断这个区间内有没有fib数即可,第一次我们以黑边为主排序求最小生成树,得到白边数量下限,再以白边原创 2015-11-24 14:42:34 · 563 阅读 · 0 评论 -
HDOJ 1385 Minimum Transport Cost
【题意】题意就是说过某个村庄时需要给一定的费用,且路上也是需要给钱的,问如何才能使从村庄A运送货物到B花的费用最少,且字典序最小。【分析】典型的多维最短路,优先考虑费用的为题,再费用相同时再考虑字典序的问题,这里的字典序指的是经过的村庄的编号先后构成的一个序列。这样的话,状态就应该含有费用,路径两个信息(结构体),然后进行状态转移。【路径记录】path【i】【j】代表从i到j不包含i,j的原创 2016-04-04 10:45:30 · 468 阅读 · 0 评论 -
SWUST oj 2478 最短路问题
【题目描述】题目【题意】中文题目,题意就不解释了【分析】用dis[u][x]表示到达u点,飞行符状态为x所需的最少时间。假设x=0表示飞行符未使用过,x=1表示已经使用过一次,x=2表示用过两次,很显然,x=0的状态,能转移到x=1(用一次)和x=0(不用),x=1的状态只能转移到x=2(再用一次或者不用了),x=2的状态只能转移到x=2(必须的)。最后从dis[1][0]状态开始,跑原创 2016-04-04 11:50:10 · 627 阅读 · 0 评论 -
Lightoj 1254 Prison Break
【题目】点击打开链接,密码acm2016【题意】n个点m条边的有向图,q次询问c,s,t,表示汽车邮箱容量为c,求从起点s到终点t的最小费用。汽车在每个点可以加任意的油,每个点的油价为a[i]。【题目分析】优先队列的Dij,每个节点保存还剩下的油量fuel和到当前为止所用的花费,dis[i][j]表示在i点油量还剩下j的费用最小值。注意,每次入队列不要一次性把所有符合的油量全部入队列,原创 2016-04-04 15:22:01 · 715 阅读 · 0 评论 -
POJ 2728 Desert King
DescriptionDavid the Great has just become the king of a desert country. To win the respect of his people, he decided to build channels all over his country to bring water to every village. Villag原创 2016-03-22 19:08:51 · 486 阅读 · 1 评论 -
Light OJ 1281
【题意】大意就是一个人要从0点走到n-1点,路中有些点有商店可以买礼物,所以这个人想买多点礼物,但是又要尽快的走到n-1点,这两者之间呢,礼物的多少优先,其次是路程长度。【分析】16个点显然是可以状压的,dp[sta][i]表示当前遍历的点的状态sta停留在shop[i]的最短路的估计值。这样状态首先是可以表示完全的,转移就显然很简单了。先预处理出每个商店到其他点的最短路径,以便后面的状态转移原创 2016-04-07 17:10:51 · 420 阅读 · 0 评论 -
有向图强连通分量的Tarjian算法
【转载地址】点击打开链接[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1转载 2016-08-16 10:38:45 · 4151 阅读 · 0 评论 -
Hdoj 3790 最短路径问题
Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。Input 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。 (1#incl原创 2015-08-06 18:32:30 · 437 阅读 · 0 评论 -
HDU1875-畅通工程再续-最小生成树
Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米。当然,为了节省资金,原创 2015-08-08 10:42:50 · 399 阅读 · 0 评论 -
Hdoj find the mincost route
题目传送门典型的Floyd+最小环的应用,动态规划求解,不懂这个算法请戳Floyd+最小环以下为ac代码#include#include#includeusing namespace std;#define inf 1<<28int n,m,minn;int maze[110][110];int dis[110][110];void Floyd(){ for(int k原创 2015-11-24 14:23:08 · 367 阅读 · 0 评论 -
Hdoj 1317 XYZZY
题目传送门 建图后,本题考察1到n这两个点是否联通,以及求最长路判断正环,floyd()判断连通性,spfa判断是否有正环即可。 Talk is cheap.Show coder.#include<cstdio>#include<cstring>#include<cctype>#include<queue>#include<algorithm>#include<iostream>原创 2015-11-08 19:29:42 · 864 阅读 · 0 评论 -
zoj Burn the Linked Camp(差分约束)
题目传送门这题要先知道差分约束的基本概念,详见博客内容在这里~题目就是给出了士兵的营帐分别能住人的最大值,和在哪些营帐区间之内,能拥有的士兵最大量,容易看出这是差分约束的典型模型,建图的时候要注意差分约束的建图方法,如果要求最大值想办法把每个不等式变为标准x-y<=k的形式,然后建立一条从y到x权值为k的边,这里表现为i点和i-1建立的负边。ac代码如下 #include<cstdio>#inc原创 2015-11-04 19:12:00 · 527 阅读 · 0 评论 -
poj 1602 昂贵的聘礼
题目传送门//此题的关键在于等级限制的处理,最好的办法是采用枚举,即假设酋长等级为5,等级限制为2,那么需要枚举等级从3~5,4~6,5~7//然后就是dij了,至于为什么要用dij,看个人喜好,毕竟这里等级处理要对vis数组进行标记//处理了等级问题,就可以枚举等级数组,n倍dij跑完本题了,nlogn0ms搞定//以下为具体代码#include<cstdio>#include<cstr原创 2015-11-02 20:22:46 · 913 阅读 · 0 评论 -
Hdoj 1026 Ignatius and the Princess I
题目传送门///bfs跑路,dfs记录路径#include<cstdio>#include<cstring>#include<queue>#include<algorithm>#include<iostream>using namespace std;char maze[105][105];int maze1[105][105],maze2[105][105];bool vis[10原创 2015-10-22 13:13:39 · 532 阅读 · 0 评论 -
邻接表实现,单源最短路径
本篇文章,参考了y990041769同学的blog,他的博客地址如下[http://blog.csdn.net/y990041769/article/details/18367665] 受他启发,这道题实际上从1出发到某个点,以及从此点回到1的最短距离。其实感觉只要建图,跑一遍spfa之后,再逆序跑一遍spfa就好了,可是在建图的时候坑死一大片,建图的时候用vector是会t的,虽然本题给了原创 2015-08-10 19:58:35 · 1600 阅读 · 0 评论 -
Hdoj 2467 Reward(拓扑排序)
DescriptionDandelion's uncle is a boss of a factory. As the spring festival is coming , he wants to distribute rewards to his workers. Now he has a trouble about how to distribute the rewards. The wor原创 2015-08-10 16:22:42 · 1069 阅读 · 0 评论 -
Codeforces Round #292 DIV2 题解
【A】判断绝对值的差值是否为偶数即可。代码:http://codeforces.com/contest/515/submission/22113777【B】有限次循环之后,答案的正确性显然可以保证。代码:http://codeforces.com/contest/515/submission/22114671【C】xjb贪心即可,看代码就明白了。很简单的一道题。http://codef原创 2016-11-09 13:09:50 · 376 阅读 · 0 评论