图算法
文章平均质量分 65
aaron_1996
let the next come now!
展开
-
次小生成树POJ 1679
POJ的题目地址:http://poj.org/problem?id=1679次小生成树是给定一个无向图,让我们计算得出这个无向图的最小生成树是否是唯一的。对于一个无向图的最小生成树,我们知道,它是连通的,而且每一条边都为割边。所以,当我们拿去一条边L的时候,树就会分裂成两个联通分支。这时,我们加入原创 2015-07-01 22:40:24 · 443 阅读 · 0 评论 -
hdu2717[BFS+启发式搜索]
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K。原创 2016-08-09 13:35:55 · 779 阅读 · 0 评论 -
poj2455二分构图网络流
Farmer John is constructing a new milking machine and wishes to keep it secret as long as possible.原创 2016-08-31 21:11:03 · 575 阅读 · 0 评论 -
hdu3345[BFS和SPFA]
War chess is hh’s favorite game: In this game, there is an N * M battle map, and every player has his own Moving Val (MV). In each round, every player can move in four directions as long as he has原创 2016-08-11 16:10:30 · 317 阅读 · 0 评论 -
[2-sat]模型基础(poj3678)
2-sat入门sat问题是计算机科学的历史上一个非常著名的NPC问题。指的是,任何一个逻辑表达式都可以化简成为一个析取范式,而证明这个逻辑表达式是否可解。原创 2016-08-23 20:45:57 · 736 阅读 · 0 评论 -
[2-sat]动态的2-sat问题(hdu3622)
概述在一些最优化的问题当中,我们不知道一些指标的最优值是多少,而这个指标又在影响我们的逻辑表达式,我觉得这样的问题是一种动态的2-sat问题。通常,我们使用搜索,不断的重复建图,最后达到解题的目标.原创 2016-08-23 20:57:11 · 407 阅读 · 0 评论 -
[2-sat]构造一个可行解(poj3648)
2-sat问题的可行解当我们确定了存在一个可行解的时候,下面的工作往往是要构造一个可行解,那么,如何来构造这样的解呢? 我们知道,当我们选择了一个强连通分量中的一个点的时候,所有的点都会被选择,所以,此时,我们将强连通分量缩点,这样就构造出了一个有向无环图。对这个图进行反向的拓扑排序,然后进行染色就行了。原创 2016-08-23 21:08:08 · 674 阅读 · 0 评论 -
poj1466最大二分图匹配
In the second year of the university somebody started a study on the romantic relations between the students. The relation “romantically involved” is defined between one girl and one boy.原创 2016-08-13 16:18:51 · 331 阅读 · 0 评论 -
codeforces733E LCA在线
题目链接如下:http://codeforces.com/problemset/problem/733/F算法思路这道题让我又加深了一下对于倍增二分求LCA的原理. 很显然,要让每两个城市之间两两可达,需要构造一棵最小生成树。但是我们在这里可以使用一定的钱减少一些边的dissatisfation,而且这个值可以为负值,很显然我们要选择的就是成本最小的那一条边.这样的话,我们先使用最小生成树算法构造原创 2016-11-06 23:26:56 · 938 阅读 · 0 评论 -
[CodeForce375]E图论
题目描述There are n cities and m two-way roads in Berland, each road connects two cities. It is known that there is no more than one road connecting each pair of cities, and there is no road which connects原创 2016-10-05 16:16:36 · 439 阅读 · 0 评论 -
[hdu5521]最短路优化
Bessie and her friend Elsie decide to have a meeting. However, after Farmer John decorated his fences they were separated into different blocks. John’s farm are divided into n blocks labelled from原创 2016-10-07 16:22:31 · 292 阅读 · 0 评论 -
[poj3687]拓扑排序的应用
Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 to N in such a way that:No two balls share the same label.原创 2016-08-20 11:54:21 · 380 阅读 · 0 评论 -
[poj1161]平面图缩点
In a country, great walls have been built in such a way that every great wall connects exactly two towns. The great walls do not cross each other.原创 2016-08-18 20:05:32 · 335 阅读 · 0 评论 -
邻接表和SPFA(POJ 1511)
通常我们在表示图的时候,常用的是邻接矩阵和邻接表。邻接矩阵可以表示图中任意两点之间的距离。而邻接表则是对于每一个节点建立一个链表,包含的是关联这个节点的任意一条边(可能是无向图,也可能是有向图)。我们可以发现,在一个具有n个节点的图中,一个邻接矩阵需要n*n个储存单位,而一个邻接表则需要m(m即为这个图中所含有的边的数目)。所以邻接矩阵适用于稠密图,而邻接表则适用于稀疏图。(注:《算法导论》给出的原创 2015-06-12 17:02:49 · 453 阅读 · 0 评论 -
从hdu 1233看kruskal算法和prim算法
这几天,离散数学学习了图论。自然也引起了一些我对图和树的一些有益的思考。今天,就通过一道hdu的acm题来简述最小生成树的两种基本算法---kruskal算法和prim算法。下面是题目,在hdu的oj中编号为1233显然,这是一种求最小生成树的问题。所谓树就是由枝丫和结点而构成的数据结构。而prim和kruskal算法分别从结点和枝丫来考虑了这个问题。prim(普里姆算法)原创 2015-04-25 00:31:59 · 551 阅读 · 0 评论 -
最大流的基本算法(ff算法&&dinic算法&&push-rebeal算法)poj1273
最大流的基本概念有以下几点: 1.残存网络:即为一条管道被占用了一部分流量之后所剩下的流量。在网络流中,图被看为一个有向图,残存流量向量相加后永远不变。这一点有点像基尔霍夫定律。 2.在找到一个流之后,仍然存在的从源点到汇点的路径。这叫做增广路径。加入增广路径后,流的容量一定能够提升。寻找增广路径一般使用DFS或BFS。ford-fu原创 2015-08-08 09:18:43 · 3043 阅读 · 0 评论 -
深度搜索算法(POJ 3984)
http://poj.org/problem?id=3984深度搜索是搜索算法中的一类重要的思想。他的过程是从起点开始,找到其邻接点并标记,然后尽量深入。最后在返回这个前驱点进行搜索。这道题是深度搜索中的基础题,要注意对其剪枝:1.搜索过的点不重复 2.用一个结构体数组记录他的结构,便于最后的输出。#include#include#include#define INF 0x原创 2015-07-21 20:49:18 · 464 阅读 · 0 评论 -
欧拉回路及其构造
欧拉回路来源于哥尼斯堡七桥问题。如下图,在当地有七座桥连接着不同的岛屿。当地人提出了一个问题:是否可以不重复地走完所有的桥。后来,欧拉解决了这个问题,并证明出:对于一个连通图,如果每一个节点的度数均为偶数,那么必然可以得到一条欧拉回路。原创 2015-08-04 23:30:03 · 3844 阅读 · 0 评论 -
poj 1719最大二分匹配hungary算法
首先在这道题之前先说明几个简单的概念二分图:如果一个图G,V能够划分成为两个子集,V1,V2,而这两个子集中的点两两不相邻,则这个图称为二分图匹配:E的一个子集E1,使得V1中的点至多只与V2中的一个点相邻,则我们可以称为G1,则这个子图为E的一个匹配最大匹配:如果一个匹配所包含的边最多,则称为最大匹配.Hungary算法:图论中一种计算最大匹配的算法,其原理是遍历图中的V1每个结原创 2015-09-03 11:42:47 · 411 阅读 · 0 评论 -
线段树+离散化操作(poj 2528)
模型建立:本题的大致题意如下,我们先后向一块墙上贴n张海报,先贴的海报可能会被后贴的海报所覆盖,问在选举的最后一天还能看到几个人的海报。很显然,我们记录下这个海报的左右端点并从后向前查询海报是否被覆盖.但是,这一题若以题目中的单位长度做单元格,则树的叶子节点会有10000000以上,算法的空间复杂度将会相当大.所以,我们将各个海报采用离散化操作,即先将海报的左右端点记录在一个数组中再进行排原创 2015-10-26 23:48:00 · 691 阅读 · 0 评论 -
二分图
二分图的一些小知识原创 2016-07-29 16:08:03 · 356 阅读 · 0 评论 -
POJ1236 图的一个连通性问题
POJ1236原创 2016-07-21 20:11:15 · 588 阅读 · 0 评论 -
[poj1639]度限制生成树
Problem DescriptionThe Contortion Brothers are a famous set of circus clowns, known worldwide for their incredible ability to cram an unlimited number of themselves into even the smallest vehicle.原创 2016-08-28 23:14:51 · 719 阅读 · 0 评论 -
hihocoder1104(Dfs预处理+树形DP)
题目描述Little Hi is taking an adventure in Suzhou now. There are N beautiful villages in Suzhou which are numbered from 1 to N. They connected by N-1 roads in such a way that there is excactly one way to原创 2016-11-26 11:07:49 · 414 阅读 · 0 评论