图论
文章平均质量分 74
bit_line
NOne
展开
-
初识最短路算法-Bellman-Ford, Djistera & Floyd
学习最短路中>..好吧,真相是:发现图论学的一团糟,所以下决心从最基础的开始一步一步走结实一些~~~在此总结一下三种单源最短路的算法:1.Bellman-Ford算法适用范围:DAG,即无环有向图,当然,只要不是负权环就可以,正权环还是可以用的.复杂度O(|V|*|E|).主要代码:const int MAX = 1024;struct edge { int fro原创 2014-07-25 12:19:23 · 878 阅读 · 0 评论 -
[hdu3018]Ant Trip欧拉路
/* 题意:给n个点,m条边。一堆Ant要去旅游,问需要把蚂蚁分成多少拨才能只经过所有的边一次。 Hint:因为要经过所有的边,所以孤立顶点直接剔除。 Hint2:分块后,对于有欧拉回路的分量直接就是1 否则看度为奇数的点的数量。我们知道,度为奇数的点的数目一定是偶数(因为每条边连接两个 顶点,产生两个“度”,所以所有点度数和必须为偶数),我们只需要讨论度为奇数的点的个数 即可。2个的原创 2014-12-03 12:48:09 · 613 阅读 · 0 评论 -
【康托展开+状压BFS】poj1077 Eight(八数码问题)
The Cantor Expassion is something that help us to solve some problem about the numbers arrange.Besides, it can help to compress state(encode&decode), so that we can use BFS/DFS to solve those proble原创 2015-01-29 16:56:29 · 858 阅读 · 0 评论 -
【LCA最近公共祖先】 poj1470 Closest Common Ancestors
It's a shame that I have wasted too much time on it...But it's just a simple LCA problem, and we can use tarjan algorithm(O(n+q)) to solve it...I have code a array name "head2" to "head" without n原创 2015-01-29 00:14:44 · 627 阅读 · 0 评论 -
[LCA Problem] hdu2586 How far away ?
LCA即:Lowest Common Ancestor,最近公共祖先,也就是一棵树中两个节点(这是最常用的,更普遍的,可以拓展到多个节点)同处于以另外某个节点为根的子树中,并且该根结点必须尽量靠近这两个节点.比如: 1 2 3 4 5 6其中,1的左孩子是2,右孩子3,2的左孩子4右孩子5,3没有左孩子右孩子是6则:4和3的LCA就原创 2015-01-28 21:44:46 · 588 阅读 · 0 评论 -
【A* + 第K短路】 poj2449 Remmarguts' Date
In this problem, we are recommended to get the k-th shortest path from node-s to node-t in a graphwe can get a A* algorithm to solve it.So the most important problem is to get a perfect "f' functi原创 2015-01-29 13:49:14 · 570 阅读 · 0 评论 -
[最小生成树小结]hdu1875/hdu1879/poj2395/poj2421/poj2485/poj1258/poj2349
找到了hdu1875hdu1879poj2395poj2421poj2485poj1258poj2349(toj1411)几个题,都是简单的最小生成树,可以用于练习达到熟练程度。一起干掉。代码:hdu1875#include #include #include #include #include #include using namesp原创 2014-12-09 19:29:41 · 772 阅读 · 0 评论 -
[poj3692][匈牙利算法]
题意:给G个女孩和B个男孩的关系,要选出一个最大集合,集合中两两都认识。注意数据范围是男女各两百,所以点有400.。。建反图,那么求出的子集就需要两两都不认识,从而等价于求最大独立集的大小。根据定理|最大独立集合|+|最小顶点覆盖|=|V|,又可转化为求最小顶点覆盖,从而求出完美匹配数即可,用匈牙利算法~顺便给自己留个板子代码#include #include #include原创 2014-12-14 22:08:32 · 617 阅读 · 0 评论 -
[toj1075]Stockbroker Grapevine
1075. Stockbroker GrapevineTime Limit: 1.0 Seconds Memory Limit:65536KTotal Runs: 831 Accepted Runs:515Stockbrokers are known to overreact to rumours. You have been contr原创 2014-12-12 13:28:56 · 537 阅读 · 0 评论 -
[toj1047]【二分图最大独立集】Girls and Boys
1047. Girls and BoysTime Limit: 5.0 Seconds Memory Limit:65536KTotal Runs: 1173 Accepted Runs:385the second year of the university somebody started a study on the romanti原创 2014-12-15 18:51:34 · 794 阅读 · 0 评论 -
[toj3517]【求树的直径】
题意是给一棵树,求树中任意两点间的距离的最大值。其本质就是:求树的直径。最短路径部分,可以用迪杰斯特拉实现。可以加优先队列优化一下,但是这里数据不大可以随便搞,快速读入并没有时间优化效果。 14932282015-01-02 13:37:59Accepted3517C++1.7K0'00.11"980K 0'00.原创 2015-01-02 13:54:34 · 852 阅读 · 0 评论 -
[toj2648 **BFS**]**Prime Path**
Prime Path 给两个数a和b,每次操作仅可以改变一位数,并且中间数只能是质数,问经过多少步可以从a变到b. 思路:BFS简单搜索一下即可.#include <cstdio>#include <cstring>#include <queue>using namespace std;struct node { int a; int step; bool oper原创 2015-03-15 10:27:50 · 637 阅读 · 0 评论 -
[BFS]HDU1044 Collect More Jewels
HDU1044 Collect More Jewels代码数学公式UML 图离线写博客浏览器兼容HDU1044 Collect More Jewels两遍BFS,首先需要记录一下每个点到DEST的距离,然后就可以搜了。当然也可以直接A*搞一下,估值函数设为f(x)={dis<代码:#include <cstdio>#include <cstring>#include <cctype>原创 2015-04-24 14:05:32 · 936 阅读 · 0 评论 -
网络流-最大流:两枚[poj1459&poj3436]
说说建图吧…poj1459:增加超级源点,超级汇点,跑一遍即可。#include <cstdio>#include <cstring>#include <vector>#include <cstdlib>#include <cmath>#include <queue>#include <algorithm>using namespace std;const int MAX = 107;原创 2015-05-02 12:37:27 · 861 阅读 · 0 评论 -
【小结】强联通分量分解
强联通分量在一个有向图的顶点子集SS中,对∀(u,v)\forall (u,v),如果都能找到一条从uu到vv的路径,那么就称SS是强联通的。如果向SS中加入任何一个其他顶点后SS都不再是强联通的,就称SS时原图的一个强联通分量。显然,如果把所有的强联通分量都缩点,原图将变成一个DAGDAGSCCSCC的求解可通过两次dfsdfs实现,第一次在原图中后续遍历,标号;第二遍将所有边反向后,从编号原创 2015-07-17 20:17:02 · 893 阅读 · 0 评论 -
【小结】2-sat
2−sat2-sat 小结2−sat2- sat解决的是可满足性问题,并且每个合取范式中的文字个数不多于22个。形式为: (a∨¬b)∧(¬c∨¬d)∧(¬a∨d)⋯\left( a\lor \lnot b\right) \land \left( \lnot c\lor \lnot d\right)\land \left( \lnot a\lor d\right) \cdots将所有a∨ba\原创 2015-07-17 20:35:18 · 788 阅读 · 0 评论 -
【欧拉回路】toj 1004 John's trip
题目大意,给m个顶点,n条边的无向图,问是否存在欧拉回路。细节1:起点是第一行数据中两个端点较小的那个,不一定是1号顶点。细节2:要求输出的欧拉回路的边序列字典序最小。细节处理:起点不要搞错了,注意输入格式。输出字典序可以简单排序处理,点数非常少,可以瞎搞。。。/* * 欧拉回路 */#include #include #include #include #inclu原创 2015-01-27 14:52:30 · 646 阅读 · 0 评论 -
[toj1050]【二分图匹配】Courses
1050. CoursesTime Limit: 5.0 Seconds Memory Limit:65536KTotal Runs: 1390 Accepted Runs:646Consider a group of N students and P courses. Each student visits zero, one or m原创 2014-12-15 09:21:16 · 622 阅读 · 0 评论 -
[poj1258 Agri-Net]最小生成树
复习了一下Kruskal。#include #include #include #include using namespace std;const int MAX = 128;struct edge { int from, to; int cost; bool operator<(const edge& B)const { return cost < B.cost;原创 2014-11-29 10:20:15 · 589 阅读 · 0 评论 -
toj2976最短路算法_新手最佳练习题
题目大意就是n个点,m条路,求第一个点到最后一个点(1->n)的最短路径原创 2014-07-25 14:35:45 · 716 阅读 · 0 评论 -
[入门]最小生成树--poj1258 Agi-Net
本题题意就是约翰成了村里的头头,原创 2014-07-25 21:07:47 · 728 阅读 · 0 评论 -
toj1050Courses
1050. CoursesTime Limit: 5.0 Seconds Memory Limit:65536KTotal Runs: 1339 Accepted Runs:623Consider a group of N students and P courses. Each student visits zero, one or m原创 2014-08-01 09:08:16 · 596 阅读 · 0 评论 -
toj1050二分匹配
#include #include #include #include #include #include using namespace std;const int INF = INT_MAX>>1;const int MAX_V = 512;struct edge {int to, cap, rev;};vector G[MAX_V];int level[MAX_V]原创 2014-08-01 11:43:54 · 609 阅读 · 0 评论 -
[网络流入门,简单题]poj1273Drainage Ditches最大流
最大流第一题.哦也~~~~~~~~~凭自己的理解写的代码,多做点题,ying原创 2014-07-29 09:44:50 · 836 阅读 · 0 评论 -
poj1273Drainage Ditches最大流[dinic算法]
这题太经典,可以作为所有最大流算法的入门题...所以昨天搞了好久dinic,愣是没明白建图那一步.后来干脆抛开那些代码,自己根据对dinic的理解写.没想到还能做出来! 好惊喜...唉,也说说自己的感受吧,网上关于这方面的文章什么的太多了,而且各有各的理解,昨晚好痛苦,看了无数篇博客文章,总算理解到算法最关键的部分了.也给自己留个教训:别总想着模板,好习惯什么的,甚至还担心如果建图甚么的没做好原创 2014-07-30 09:26:20 · 1144 阅读 · 0 评论 -
hdu3549炒鸡果的最大流[dinic]
呃,但是我是新手,要多联系的对吧....原创 2014-07-30 09:49:10 · 705 阅读 · 0 评论 -
poj3281Dining网络流-最大流
就向之前那篇博客写得一样,这里就是需要拆点的.把原创 2014-07-30 20:39:08 · 661 阅读 · 0 评论 -
[poj3249]Test For Job
题目大意是JB应聘喷到变态老板,让他做一个变态题.题目要求它zai原创 2014-08-06 20:49:13 · 682 阅读 · 0 评论 -
[新手入门][拓扑排序]
( ⊙ o ⊙ )!O(∩_∩)O哈!原创 2014-08-06 21:08:11 · 780 阅读 · 0 评论 -
[poj2117 Electricity]求割点
ElectricityTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 4055 Accepted: 1366DescriptionBlackouts and Dark Nights (also known as ACM++) is a company that原创 2014-11-29 09:56:56 · 664 阅读 · 0 评论 -
[poj1523 SPF]tarjan算法求割点
SPFTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 6304 Accepted: 2897DescriptionConsider the two networks shown below. Assuming that data moves around th原创 2014-11-29 10:04:01 · 646 阅读 · 0 评论 -
[poj2349 Arctic Network]最小生成树
Arctic NetworkTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 10805 Accepted: 3542DescriptionThe Department of National Defence (DND) wishes to connect se原创 2014-11-29 10:17:42 · 595 阅读 · 0 评论 -
[poj 2349]Arctic Network
题意:给p个点,要在这些点中选一些建立无线电站,使得每两个点之间都可以通讯。另外有s个通讯卫星,两个通讯卫星之间无论距离长短都可以自由通信。但是无线电站的规格必须相同,即任意两个无线电站的通讯距离是相同的。比如题目给的样例,我们可以选择(0,100)和(0,300)各建一个无线电站,它们之间通过无线电通信,(0,600)和(150,750)之间类似,然后这四个点被分为了两组,这两组之间通过卫星通信原创 2014-11-26 22:03:22 · 582 阅读 · 0 评论 -
[poj1144 Network]tarjan求割点
NetworkTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 9767 Accepted: 4587DescriptionA Telephone Line Company (TLC) is establishing a new telephone cable原创 2014-11-29 10:08:58 · 561 阅读 · 0 评论 -
【小结】最小费用流&最大权闭合图
最小费用流就是在保证流量FF的前提下,求解最少花费是多少的问题O_O{O\_O}建图: 每条边在最大流基础上(to指向点,cap容量,rev反向边)\left(to指向点,cap容量,rev反向边\right),增加一个费用(cost)\left(cost\right)求解方法: 在最大流中,是按照任意可行路径,也就是残余网络中的可增广路径,向网络中注入流量,从而在汇点获得相应流量的策略进行,直原创 2015-08-05 16:47:23 · 840 阅读 · 0 评论