图论
一些图论编程题
NeverMoreH
^_^
展开
-
hdu4096(模拟)
题意: 给出一些句子,代表一些名词和动词的关系,然后有一些查询,看查询语句中的关系是否正确。 思路: 按照题意建边,查询时找两个点有没有路径即可。 代码: #include #include #include #include #include #include #include using namespace std; map mm; map nn; i原创 2015-10-11 15:55:37 · 353 阅读 · 0 评论 -
hdu5438(2015长春网络赛B题)
题意: 有n个池塘、m个管道,每个池塘有权值,m个管道用来连接池塘(无向边),我们要把度小于2的池塘删除,统计每个包含池塘数是奇数的连通分量的权值并输出。 思路: 拓扑排序之后,删点,然后dfs一遍就好了。因为用int没用long long WA了一次。 代码; #include #include #include #include using namespace原创 2015-09-14 10:11:21 · 426 阅读 · 0 评论 -
hdu5444(2015长春网络赛H题)
题意: 给出一棵树的描述,这棵树构造出来,满足从右到左数值递增,根在最下面,然后有一些询问x,我们要输出从根走到x的路径,w:向左、e:向右。 思路: 建树的时候,首先第一个点一定是根,然后比根小的建在根的右边,反之建在左边,就可以了。 代码: #include #include #include #include using namespace std; co原创 2015-09-14 10:21:33 · 994 阅读 · 0 评论 -
hdu3549(又是最大流模板题)
题意: 裸的最大流模板,比hdu1532多了个case输出。。。 思路: 还是用hdu1532那个模板。。。 代码: #include #include #include #include #include #include #include #include #include #include #include #include using namespace std原创 2015-09-04 18:54:27 · 343 阅读 · 0 评论 -
hdu1532(最大流裸题)
题意: 裸的最大流。 思路: 先试了一下红书模板,TLE了,想起来那个比较快的模板,直接就过了。。。果然模板的质量也是不一样的。 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath&...原创 2015-09-04 18:49:11 · 400 阅读 · 0 评论 -
hust1342(流量有上下界的最小流)
题意: 给出一个有向无环图(DAG),我们规定有一些边是必须走的,当走到一个出度是0的点时,我们可以瞬移到任何一个我们想去的点,自选起点,走遍所有的必须走的边,使得瞬移次数最少。 思路: 这类题完全没做过啊,赛后问了过了这道题的同学,才知道这么个东西,具体怎么建图模板里都告诉了,红书上就有。 代码: #include #include #include #include原创 2015-08-31 20:06:31 · 373 阅读 · 0 评论 -
uvalive5843(最大流)
转载自:http://vawait.com/uvalive-5843/ 题意: 给出n个工人,给出m个命令,每条命令给出这条命令的最早开始时间、最晚结束时间和完成这条命令所需要的时间,求出一种方案使得完成时间最早。 思路: 源点到每个工作添加流为工作时间,从工作到每个时间点添加流为1,从每个时间点到汇点添加流为工人数目。 代码: #include #includ转载 2015-08-15 12:32:36 · 329 阅读 · 0 评论 -
uvalive5796(图论、桥、并查集)
题意: 给出一个无向图,每次询问,问两个点之间是否有一条唯一的不经过重复点的路径。 思路: 如果存在这样的路径,那么路径上的点就都是桥,我们可以找出图中所有的桥,把非桥边删去,把桥连的点塞到并查集中,查询的时候每次只要看两个点是否在同一个并查集即可。 这题比赛的时候没过,赛后也没写,贴一个我们校一队的代码吧。 代码: #include #include #include原创 2015-08-18 09:27:34 · 1632 阅读 · 0 评论 -
hdu3691(无向图最小割的求解)
题意: 给出一个无向图的源点和每个边的容量,让你自己选择汇点,使得最大流最小,输出最大流。 思路: 用SW算法求一遍无向图的最小割即可,源点如果在S集合中,我们只要在T集合中随便找一个点当作汇点就可以得到想要的最大流,反之亦然。 代码: #include #include #include #include #include #include #include #incl原创 2015-08-12 16:41:16 · 673 阅读 · 0 评论