
ACM---图论
文章平均质量分 85
Keaper
这个作者很懒,什么都没留下…
展开
-
Uva 10600 ACM Contest and Blackout(次小生成树)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1541题意:求一个图的最小生成树和次小生成树。题解:/* *算法引入: *设G=(V,E,w)是连通的无向图,T是图G的一棵最小生成树; *如果有另一棵树T1,满原创 2016-04-17 15:06:27 · 550 阅读 · 0 评论 -
求解有向图的强连通分量的SCC问题---POJ 2186 Popular Cows
【SCC问题】在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected),如果有向图G的每两个顶点都强连通,称G是一个强连通图.通俗的说法是:从图G内任意一个点出发,存在通向图G内任意一点的的一条路径.非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components,SCC).求图强连通分量的意原创 2016-07-25 16:16:10 · 4615 阅读 · 0 评论 -
POJ 2762 Going from u to v or from v to u?
题目链接:http://poj.org/problem?id=2762题意:给出一个图及其相连的边,判断是否任意两点之间都是相通的(能从x到y或者能从y到x)。题解:可以知道每个强连通分中的点必然都能够相互到达,所以先对图进行缩点,缩点之后是一个有向无环图DAG,构造新图,任意两个点相互可达转化为任意两个连通分量相互可达,即新图中任意两个点可达。对新图进行拓扑排序,排序之后如果任意相邻原创 2016-07-28 11:18:01 · 320 阅读 · 0 评论 -
PAT L2-010. 排座位(并查集)
题目链接:https://www.patest.cn/contests/gplt/L2-010题目:布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(这里假设朋友的朋友也是朋友。但敌人原创 2016-07-07 10:55:33 · 973 阅读 · 0 评论 -
PAT L2-001. 紧急救援(扩展dijkstra)
参考:http://blog.youkuaiyun.com/strokess/article/details/51339933题目:作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同原创 2016-07-05 10:02:26 · 1057 阅读 · 0 评论 -
POJ 1459 Power Network(Dinic邻接表+当前弧优化)
题目链接:http://poj.org/problem?id=1459题意:一个电网包含一些结点(电站、消费者、调度站),这些结点通过电线连接。每个结点u 可能被供给s(u)的电能,s(u)≥0;同时也可能产生p(u)的电能,0≤p(u)≤pmax(u);站点u 还有可能消费c(u)电能,0≤c(u)≤min( s(u), cmax(u) );可能传输d(u)的电能,d(u) = s(u) +原创 2016-07-18 15:06:03 · 601 阅读 · 0 评论 -
POJ 3308 Paratroopers(最小割+Dinic)
题目链接:http://poj.org/problem?id=3308题意:外星人来攻打地球了。。。外星人派了一些伞兵来攻占地球的兵工场,兵工厂是一个矩形网格,伞兵会降落在兵工厂的某个位置。地球人有激光武器,可以杀死一行或者一列的所有敌人。但是每个激光武器安置在每行每列的费用都是不同的。伞兵很厉害只要一个就可以消灭兵工厂,所以,现在要部署一套激光系统使得伞兵一降落就可以消灭所有敌人。并且要求费原创 2016-07-18 21:09:01 · 448 阅读 · 0 评论 -
求解二分图的最大匹配的匈牙利算法---POJ 1325 Machine Schedule
【基本概念】二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集 U 和V ,使得每一条边都分别连接U、V中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数条边的环」的图。匹配:在图论中,一个「匹配」(matching)是一个边的集合,其中任意两条边都没有公共顶点。原创 2016-07-27 15:47:19 · 1828 阅读 · 0 评论 -
POJ 1273 Drainage Ditches(最大流模板)
题目链接:http://poj.org/problem?id=1273题意:一些水管连接着十字路口,求从起点到终点的最大流量。题解:基础模板题。注意重边。代码:#include#include#include#include#includeusing namespace std;const int MAX=200+10;const int INF=0x3f3f3f3f原创 2016-07-11 08:38:28 · 306 阅读 · 0 评论 -
2016 Multi-University Training Contest 1-1001---HDU 5723 Abandoned country(DFS+最小生成树)
题目链接:HDU 5723题意:给出一些点及其之间的一些边的权值,求最小生成树的总权值以及任意两点之间路径权值的期望。题解:最小生成树用Kruskal算法求出。求期望,先求出在每两点之间路径权值的总和,除以C(n,2)即可。求总权值,在最小生成树中,每条边都可以将树分成两部分,也就是分成的两部分中的点之间的路径中必定包含该边,所以这条边的贡献度为边两边点数相乘然后乘以边的权值,即为原创 2016-07-20 20:17:13 · 369 阅读 · 0 评论 -
2016 Multi-University Training Contest 1-1004---HDU 5726 GCD
题目链接:HDU 5726题意:给出一串数,对于每次区间查询输出这个区间的GCD,并且统计共有多少个区间的GCD等于这个GCD值。题解:区间GCD查询:线段树。统计区间个数:首先,在统计某个区间的GCD值时,相当于统计最后一个数和前面所有数的 GCD 的GCD。用一个map ans来记录全局的GCD区间个数,map中key为GCD值,value为等于这个值得区间个数。枚举区原创 2016-07-20 21:21:11 · 403 阅读 · 0 评论 -
2016 Multi-University Training Contest 1-1005---HDU 5727 Necklace(枚举+二分图匹配)
题目链接:HDU 5727题意:有一些 宝石,分为阴阳两种,且数量相等,要串成一条项链,并且阴阳宝石不能相邻。同时,有一些阳宝石与特定的阴宝石相邻则会使得其变得暗淡无光。给出这些规则要求最少有多少个阳宝石会变得暗淡无光。题解 :其实就是一个阴阳宝石怎么交错摆放的问题,很容易想到通过DFS去搜索枚举,但是直接阴 阳交错搜索的话,时间复杂度太高。因此我们首先选取一种宝石(假设为阴),枚举所原创 2016-07-21 10:46:42 · 485 阅读 · 1 评论 -
2016 Multi-University Training Contest 4 解题报告
1.1001-HDOJ 5763 Another Meaning题意:有两个字符串A和B,字符串A中包含字符串B,字符串B有两层含义,问A串有几种含义?题解:因为凡是字符串A包含字符串B的位置,均会有两种含义,所以我们可以先用KMP求解出字符串A中包含B的位置,标记这些位置。然后令dp[i]表示,字符串A前i个字符构成的串的含义数那么考虑两种转移:末尾不替换含义:dp[i - 1原创 2016-07-31 15:12:13 · 647 阅读 · 0 评论 -
POJ 2112 Optimal Milking(最大流+Floyd+二分||二分图匹配)
题目链接:POJ2112题意:农场主John 将他的K(1≤K≤30)个挤奶器运到牧场,在那里有C(1≤C≤200)头奶牛,在奶牛和挤奶器之间有一组不同长度的路。K个挤奶器的位置用1~K的编号标明,奶牛的位置用K+1~K+C 的编号标明。每台挤奶器每天最多能为M(1≤M≤15)头奶牛挤奶。编写程序,寻找一个方案,安排每头奶牛到某个挤奶器挤奶,并使得C 头奶牛需要走的所有路程中的最大路程原创 2016-07-25 08:44:23 · 458 阅读 · 0 评论 -
POJ 3767 I Wanna Go Home(Dijkstra)
题目链接:http://poj.org/problem?id=3767题意:(引自:http://www.cnblogs.com/mycapple/archive/2012/08/21/2649607.html)由于战争,一个商人想从城市1,回到自己的家城市2,其中城市1始终是由领导1,城市2始终由领导2,其中,商人回家的路中只能有一条路上连接由两个领导领导的城市,还有就是给出的路上双向的原创 2016-04-18 12:05:15 · 377 阅读 · 0 评论 -
POJ1659 Frogs' Neighborhood(Havel-Hakimi 定理,判断序列可图)
度序列(degree sequence):若把图 G所有顶点的度数排成一个序列 s,则称 s为图 G的度序 列。序列是可图的(graphic):一个非负整数组成的有限序列如果是某个无向图的度序列,则称 该序列是可图的。判定一个序列是否是可图的,有以下 Havel-Hakimi 定理。 (Havel-Hakimi 定理): 由非负整数组成的非增序列 s:d1, d2, …, dn(n ≥原创 2016-05-03 18:32:22 · 481 阅读 · 0 评论 -
HDOJ1241 Oil Deposits(DFS模板题)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1241题意:GeoSurvComp 地质探测公司负责探测地下油田。每次 GeoSurvComp 公司都是在一块长方 形的土地上来探测油田。在探测时,他们把这块土地用网格分成若干个小方块,然后逐个分析每 块土地,用探测设备探测地下是否有油田。方块土地底下有油田则称为 pocket,如果两个 pocke原创 2016-05-05 19:59:21 · 433 阅读 · 0 评论 -
ZOJ2110Tempter of the Bone(DFS模板题,迷宫问题)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2110题意:一只小狗在一个古老的迷宫里找到一根骨头,当它叼起骨头时,迷宫开始颤抖,它感觉到地 面开始下沉。它才明白骨头是一个陷阱,它拼命地试着逃出迷宫。 迷宫是一个 N×M大小的长方形,迷宫有一个门。刚开始门是关着的,并且这个门会在第 T秒 钟开启,门只原创 2016-05-05 19:08:09 · 570 阅读 · 0 评论 -
HDOJ1198 Farm Irrigation(DFS)
题目链接:点击打开链接题意:Benny 有一大片农田需要灌溉。农田是一个长方形,被分割成许多小的正方形。每个正方形 中都安装了水管。不同的正方形农田中可能安装了不同的水管。一共有 11 种水管,分别用字母 A~ K标明,如图 2.11(a)所示。 Benny 农田的地图是由描述每个正方形农田中水管类型的字母组成的矩阵。 某些正方形农田的中心有水源,因此水可以沿着水管从一个原创 2016-05-05 21:41:59 · 373 阅读 · 0 评论 -
ZOJ1008 Gnome Tetravex(DFS)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008题意:哈特近来一直在玩有趣的 Gnome Tetravex 游戏。在游戏开始时,玩家会得到 n×n(n≤5) 个正方形。每个正方形都被分成 4个标有数字的三角形(数字的范围是 0到9)。这四个三角形分 别被称为“左三角形”、“右三角形”、“上三角形”和原创 2016-05-06 18:50:37 · 805 阅读 · 0 评论 -
HDU1429 胜利大逃亡(续)(BFS+状态压缩)
题目链接:点击打开链接题意:迷宫中,一个起点,一个终点,迷宫中有墙,有门,门的钥匙也在迷宫中某处,只有拿到钥匙才能打开门,问能不能再T步(不含)之内逃出迷宫。题解:在朴素BFS上增加了钥匙的状态,只有有钥匙才能打开门,总共有不超过10吧钥匙,所以用一个int的整数的二进制即可存储钥匙的状态。碰到门先判断状态,碰到钥匙更新状态。代码:#include#include#includ原创 2016-05-08 13:45:36 · 1189 阅读 · 1 评论 -
HDU1885 Key Task(BFS+状态压缩)
与HDU1429大致一样。代码:#include#include#include#include#includeusing namespace std;const int MAX=100+10;struct point{ int x,y,step,state; point(int x=0,int y=0,int step=0,int state=0):x(x原创 2016-05-08 15:22:12 · 629 阅读 · 0 评论 -
POJ 3436 ACM Computer Factory(最大流)
题目链接:http://poj.org/problem?id=3436题意:题意看了好长时间。。。有一些机器来组装电脑,每台电脑有P个部分,P个部分全部组装完成才算完成。每台机器要求输入一定规格的半成品电脑,输出一定规格的电脑,每台机器有最大产出效率(每小时生产台数),要求合理安排这些机器使得总的生产效率最大。题解:感觉是网络流,但是开始不知道怎么建模,看了别人的博客,拆点,真是巧妙,将每原创 2016-07-11 11:27:46 · 1551 阅读 · 0 评论 -
POJ 3281 Dining(最大流)
题目链接:http://poj.org/problem?id=3281题意:有一些牛每个牛都有自己喜欢吃的food和喜欢喝的drink,饲养员有一些种类的food和一些种类的drink,合理分配这些食物和饮料,使得能够同时得到自己喜欢的食物和饮料(只要一个食物和一个饮料)的牛的数量最多。并且一种饮料或食物只能分配给一头牛。题解:要求牛的数量于是,将牛拆成两个点一条边,在边上加上容量。然后设原创 2016-07-11 16:58:05 · 337 阅读 · 0 评论 -
POJ 1087 A Plug for UNIX(网络流)
题目链接:http://poj.org/problem?id=1087题意:1、在一个会议室里有n种插座,每种插座一个;2、每个插座只能插一种以及一个电器(或者适配器);3、有m个电器,每个电器有一个插头需要插在相应一种插座上;4、不是所有电器都能在会议室找到相应插座;5、有k种适配器,每种适配器可以有无限多数量;6、每种适配器(a, b)可以把b类插座变为a类插座;原创 2016-07-11 20:53:14 · 295 阅读 · 0 评论 -
再谈图的存储方式(邻接矩阵,邻接表,前向星)
1.邻接矩阵1.存图思想使用一个矩阵来描述一个图,对于矩阵的第i行第j列的值,表示编号为i的顶点到编号为j的顶点的权值。2.代码实现// 最大顶点数const int V = 1000;// 邻接矩阵的定义// mat[i][j] 表示 顶点'i'到顶点'j'的权值int mat[V][V];// 邻接矩阵的初始化操作// 假设权值为零表示没有该边mems原创 2016-07-19 21:35:57 · 963 阅读 · 0 评论 -
支配集、覆盖集、独立集与匹配
图论中支配集、覆盖集、独立集与匹配基本概念及关系1) 点支配集,极小点支配集,最小点支配集,点支配数 - γ0(G);点支配的概念 - 顶点支配顶点;2) 点覆盖集,极小点覆盖集,最小点覆盖集,点覆盖数 - α0(G);点覆盖的概念 -顶点集合的子集覆盖住所有边;3) 点独立集,极大点独立集,最大点独立集,点独立数 - β0(G);4) 边覆盖集,极小边覆盖集,最小边覆原创 2016-07-23 19:18:36 · 1490 阅读 · 0 评论 -
2016 Multi-University Training Contest 7
1. 1002-HDU 5810 Balls and Boxes题意:给定n个球,m个盒子,将n个球抛入m个盒子,对于每种情况,定义, 是第i个盒子中球的个数, 是所有盒子中的球的个数的平均数,即n/m。求V的期望E(V)。题解:首先化简公式。又由于,所以首先对于每个盒子,每个球落入其中的概率是p=1/m,落不进的概率为1-p=1-1/m。所以对于每个盒原创 2016-08-10 17:22:31 · 495 阅读 · 0 评论