ACM图论
文章平均质量分 78
Cathy0322
这个作者很懒,什么都没留下…
展开
-
URAL 1008 Image encoding [BFS]
题意:两种图像的打印思路:BFS两种互换#include #include #include #include using namespace std;typedef struct Point{ int x,y;}point;int原创 2011-09-21 10:49:05 · 306 阅读 · 0 评论 -
HDU 2426 Interesting Housing Problem [N!=M的最佳二分匹配]
题意:有N个学生,M个房间,每个学生对部分房间进行评价,评价值有正有负,现安排房间,要求学生不能入住其不喜欢的房间,即只能入住评价值非负的房间,求一种方案使总评价值最大。思路:最佳匹配模板KM,过程中求最佳,最后通过匹配情况判断能否满足N。#include#inclu原创 2011-09-21 11:45:18 · 839 阅读 · 1 评论 -
POJ 3613 Cow Relays [矩阵连乘]
题意:求无向图s到t恰好经k条边(边可以重复)的最短路径思路:(不是很清楚)类似于快速幂的矩阵相乘的方法,只是把相乘部分改成floyd。设ans[i][j]表示的i到j通过k条边的最短路径。ans[i][j] =min (ans[i][k] + graph[k][j])原创 2011-09-21 11:36:57 · 578 阅读 · 0 评论 -
POJ 1386 Play on Words [欧拉路]
题意:字母若一首一尾相同,可相互连接,问是否能连成一串。思路:若可连接,每个点的入度和出度相同,则为欧拉回路,仅有两个点(一个入度比出度多一,一个出度比入度多一),则为欧拉路。两者皆成立。#include #include using namespace std;原创 2011-09-21 11:34:27 · 297 阅读 · 0 评论 -
POJ 1724 ROADS [dijkstra+heap]
题意:Bob现在有的钱数为M,他想从城市1到城市n,给出m条连接两个城市的有向边,并且给出路的长度w,和经过这条路要交的钱数c。问Bob能到达城市n的最短路径为多长。(总共扣的钱数必须不大于M)思路:dijkstra+heap的应用,加上A*的约束条件。需要对dijkstra原创 2011-09-21 11:23:11 · 446 阅读 · 0 评论 -
POJ 1201 Intervals [差分约束]
题意:在区间[0,50000]上有一些整点,并且满足n个约束条件(u, v, w),即在区间[u, v]上至少有x个整点,问区间[0, 50000]上至少有几个整点。思路:spfa(邻接表)+差分约束。构造差分约束系统的关键:用dict[i]表示区间[0, i]上的整点数,则原创 2011-09-21 11:18:08 · 351 阅读 · 0 评论 -
POJ 2349 Arctic Network [最小生成树]
题意:有N个城市,其中M个城市有卫星频道,两个有卫星的城市无论多远都能联系,而两个没有的城市只在一定的距离内才能联系,为使所有的城市都可联系,求这个距离的最小值。思路:求一颗最小生成树,去掉生成树里的最大的M条边,计算剩下边的最大权。#include #include原创 2011-09-21 11:12:28 · 367 阅读 · 0 评论 -
POJ 3169 Layout [差分约束]
题意:n头牛编号为1到n,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0。这些牛的距离存在着一些约束关系:1.有ml组(u, v, w)的约束关系,表示牛[u]和牛[v]之间的距离必须 = w。问如果这n头无法排成队伍,则输出-1,如果牛[1]和牛[n]的距离可以无限远,原创 2011-09-21 11:10:50 · 331 阅读 · 0 评论 -
URAL 1136 Parliament [DFS树型转换]
题意:给定一棵二叉排序树的中序转换为前序的逆序输出思路:后序遍历找到根,再在中序遍历的相应位置找到分成的两棵子树,依次进行遍历。#include #include #include using namespace std;#define MAX 3002原创 2011-09-21 11:07:35 · 427 阅读 · 0 评论 -
URAL 1080 Map Colouring [简单DFS]
题意:给定一个地图,有若干国家,有两种颜色,要求相邻国家的着色不同,确定方案。思路:按要求第一个国家为X=0,则其相邻国家为1-X,若与先前矛盾则输出-1,注意相邻判断结束,将其边断开,以免干扰下次搜索。#include #include using namesp原创 2011-09-21 11:06:28 · 812 阅读 · 0 评论 -
URAL 1076 Trash [最佳匹配KM]
题意:给定N个垃圾桶,每个垃圾桶内装有N种数量不同的垃圾,现把垃圾分类,每个垃圾桶装一种垃圾,移动一个单位的垃圾消耗代价,求最小代价。思路:最佳二分匹配,KM算法处理,注意最小,将边权置负。#include#include#include#include原创 2011-09-21 11:05:11 · 563 阅读 · 0 评论 -
URAL 1072 Routing [最短路径]
题意:构造图过程中,若IP和子网掩码的按位与有相同,则连通无权,求出既定两点的路径。思路:先构图,用dijkstra求最短路,输出路径。#include #include #include #include #include using namespa原创 2011-09-21 11:03:58 · 632 阅读 · 0 评论 -
URAL 1056 Computer net [DFS求树的中心]
题意:给定一棵树,求树的中心(即到各结点的距离最小)。若存在多个,按顺序输出。(至多两个,依据树的性质)。思路:树的中心必然为其直径的中点,利用两个DFS求直径的两个结点及其直径长,DFS(1)求出树的最远结点,DFS(2)以该结点为起始,寻找离该结点的最远点,依据直径长循环原创 2011-09-21 11:02:17 · 795 阅读 · 0 评论 -
POJ 2599 A funny game [DFS博弈]
题意:给定无向图,两个人依次决定移动位置,若一方无路可走则为输,判断先行者的输赢及赢时第一步的走向(若多路皆可,输出较小的数,注意排序)走过的位置会自动销毁,即记忆化搜索。思路:DFS记忆化搜索,对访问点排序,bool DFS(int k,bool who,node vis)原创 2011-09-21 11:00:15 · 590 阅读 · 0 评论 -
POJ 2343 Airline company [DFS编号]
题意:给定一个N点M边的无向图,为每个边编号1~M,若点的入度>1,其相关边编号的最大公约数为1,有解则输出方案。思路:用DFS进行编号,将同一点的相关边存入向量组,依据gcd(x,x+1)=1,将其相关边顺序编号。#include #include #inclu原创 2011-09-21 10:57:21 · 934 阅读 · 0 评论 -
POJ 2357 Labyrinth [DFS]
题意:已知迷宫形态,确定墙的数目。思路:基本DFS#include #include #include using namespace std;#define MAXN 35int n,sum;char map[MAXN][MAXN];bool原创 2011-09-21 10:55:31 · 461 阅读 · 0 评论 -
POJ 2367 Genealogical tree [拓扑排序]
题意:给定一系列数点,依次给出点的后序结点,输出顺序思路:简单拓扑排序#include #include #include #define MAXN 102using namespace std;int map[MAXN][MAXN],ret[MAXN原创 2011-09-21 10:53:08 · 326 阅读 · 0 评论 -
POJ 1734 Sightseeing trip [最小环]
题意:给定一张标明若干景点的地图,已知各景点间的通路及其路程。两个景点之间可有多条道路,无向,无自身环。求一条旅游回路(包含>2个景点,路程最短,不必包含所有景点)。思路:Floyd#include #include #include using namesp原创 2011-09-21 10:40:47 · 436 阅读 · 0 评论 -
HDU 3488 Tour [裂点+KM或最小费用最大流]
题意:有若干地点和若干通道,确定几条回路,要求可到所有点,且仅经过一次,即每个点必须属于且仅能属于一个圈。思路:(1)转化为二分图,由题意知,每个点的出度=入度=1,将点裂开,将裂开的点分至两端,用KM以最佳二分图处理;(2)转化为最大流,同样将点裂开,裂开形成的两点原创 2011-09-21 11:50:08 · 611 阅读 · 0 评论