图论
凌阡陌
随心而为,我自逍遥
展开
-
poj1125最短路模板
简单的模板应用,就是求图中各个点中,每个点到其余各点最大距离的最小值。#include #include #include using namespace std;#define maxn 110#define maxint 999999int mapp[maxn][maxn];//the map of the problemint ans[maxn];//the longest d原创 2012-04-23 19:14:47 · 287 阅读 · 0 评论 -
hdu2426Interesting Housing Problem
http://acm.hdu.edu.cn/showproblem.php?pid=2426#include #include using namespace std;const int oo=1e7;const int mm=111111;const int mn=8888;int node,src,dest,edge,ans;int ver[mm],flow[mm],cost原创 2012-10-06 22:04:09 · 320 阅读 · 0 评论 -
hdu2813one fight one
明显的二分图的最佳匹配,直接用map+最小费用最大流,但是很悲惨的超时了,后来换成字典树+最小费用最大流,还是超时,哪位能帮我看一下哪有问题吗?在网上搜了一下,这个题大家都是用KM算法做的,难道最小费用最大流不可以???#include #include #include using namespace std;const int oo=1e7;const int mm=1111原创 2012-10-06 21:24:10 · 327 阅读 · 0 评论 -
nefu484数字梯形问题
数字梯形问题Time Limit 1000msMemory Limit 65536Kdescription 给定一个由n 行数字组成的数字梯形如下图所示。梯形的第一行有m 个数字。从梯形的顶部的m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。原创 2012-10-08 21:20:11 · 674 阅读 · 0 评论 -
nefu486魔术球问题(增加节点最大流模板)
魔术球问题Time Limit 1000msMemory Limit 65536Kdescription假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球。(1)每次只能在某根柱子的最上面放球。(2)在同一根柱子中,任何2个相邻球的编号之和为完全平方原创 2012-10-09 11:38:58 · 553 阅读 · 0 评论 -
hdu1151有向无环图的最小路径覆盖
题目大意:在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍。分析:就是求几条路径能覆盖到图中所有的点,即最小路径覆盖问题。有向无环图的最小路径覆盖数=m-匹配数。#include #include using namespace std;const int o原创 2012-09-25 21:09:59 · 478 阅读 · 0 评论 -
nefu492运输问题
W公司有m个仓库和n 个零售商店。第i 个仓库有ai 个单位的货物;第j 个零售商店需要bj个单位的货物。货物供需平衡,即。从第i 个仓库运送每单位货物到第j 个零售商店的费用为Cij 。试设计一个将仓库中所有货物运送到零售商店的运输方案,使总运输费用最少。 对于给定的m 个仓库和n 个零售商店间运送货物的费用,计算最优运输方案和最差运输方案。与分配问题是一样的,都是最小费用最大流和最大费原创 2012-10-10 15:06:56 · 680 阅读 · 0 评论 -
nefu489软件补丁问题
«问题描述:T 公司发现其研制的一个软件中有n 个错误,随即为该软件发放了一批共m 个补丁程序。每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些错误时才可以使用。一个补丁在排除某些错误的同时,往往会加入另一些错误。换句话说,对于每一个补丁i,都有2 个与之相应的错误集合B1[i]和B2[i],使得仅当软件包含B1[i]中的所有错误,而不包含B2[i]原创 2012-10-10 13:31:27 · 559 阅读 · 0 评论 -
nefu488餐厅计划问题(最小费用最大流)
餐厅计划问题一个餐厅在相继的N 天里,每天需用的餐巾数不尽相同。假设第i天需要ri块餐巾(i=1,2,…,N)。餐厅可以购买新的餐巾,每块餐巾的费用为p分;或者把旧餐巾送到快洗部,洗一块需m天,其费用为f 分;或者送到慢洗部,洗一块需n 天(n > m),其费用为s < f 分。每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗。但是每天洗原创 2012-10-10 11:13:32 · 824 阅读 · 0 评论 -
nefu494深海机器人问题
深海机器人问题Time Limit 1000msMemory Limit 65536Kdescription 深海资源考察探险队的潜艇将到达深海的海底进行科学考察。潜艇内有多个深海机器人。潜艇到达深海海底后,深海机器人将离开潜艇向预定目标移动。深海机器人在移动中还必须沿途采集海原创 2012-10-10 20:57:00 · 621 阅读 · 0 评论 -
hdu4284搜索+Floyd
题目:给出一些城市,从1出发,旅游一圈回到1,由于花费可能不够,所以选择一些城市打工,打工之前需要花费d买一个证,工资为c。选中的城市必须去工作一次,而且只能工作一次,问能不能完成旅行#include #include #include using namespace std;const int oo=1e8;int g[110][110];int a[110],c[110],原创 2012-09-12 19:52:10 · 292 阅读 · 0 评论 -
nefu487最长递增子序列问题
最长递增子序列问题Time Limit 1000msMemory Limit 65536Kdescription给定正整数序列x1 , ... , xn 。(1)计算其最长递增子序列的长度s。(2)计算从给定的序列中最多可取出多少个长度为s的递增子序列。(3)如果允许在取出的序原创 2012-10-09 21:17:43 · 508 阅读 · 0 评论 -
nefu493负载平衡问题
负载平衡问题G 公司有n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。 对于给定的n 个环形排列的仓库的库存量,编程计算使n 个仓库的库存数量相同的最少搬运量。【问题分析】转化为供求平衡问题,用最小费用最大流解决。【建模方法】首先求出所有仓库存货量平均值,设第i个仓库原创 2012-10-10 16:03:13 · 818 阅读 · 1 评论 -
hdu3718Similarity
题意:匹配两个串,求最大匹配数。匹配的两个串形似即可。#include #include #include using namespace std;const int oo=1e7;const int mm=111111;const int mn=8888;int node,src,dest,edge;int ver[mm],flow[mm],cost[mm],next[mm]原创 2012-10-08 11:06:02 · 293 阅读 · 0 评论 -
hdu1853最小费用最大流
题意:一张有向图,找出图中所有的回路,求所有回路权值总和。要求,所有的点只能属于一个回路,每个回路中至少包含两个点,如果不存在输出-1.分析:所有点最多只属于一个回路,即所有的点入度和出度都不会大于1,利用最小费用最大流。不知道这个题是怎么回事,一开始是mn=888,mm=11111,居然过不去。。。。#include #include using namespace std;c原创 2012-10-05 20:44:59 · 386 阅读 · 0 评论 -
poj2594点可重复的最小路径覆盖
点可重复的路径覆盖问题用匈牙利算法+floyd闭包来求解。#include #include #include #include #include #include #include #include #include #define MAX 550using namespace std;bool map[MAX][MAX],used[MAX];int mat[MAX]原创 2012-09-27 20:50:03 · 361 阅读 · 0 评论 -
poj1795Median Weight Bead传递闭包
传递闭包:形象来说,就是1->3->5,2->3->4,可以分化成1->5,2->4.#include #include #include using namespace std;int g[110][110];void floyd(int n){ int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++)原创 2012-09-27 20:20:25 · 489 阅读 · 0 评论 -
zoj3646二分匹配
这是我zoj的第一道题,比赛的时候怎么也想到是二分匹配。想到将它转化为图,将U看做是1,D 看做是0,将整张图看做是一个邻接矩阵,求每个点是否有自环或者是回路。但是,这都没想到是二分匹配。。。。惭愧啊。。。。#include #include using namespace std;const int oo=1e8;const int mm=111111;const int mn=9原创 2012-10-01 15:32:27 · 328 阅读 · 0 评论 -
poj2771二分图点权最大独立集,用Dinic解决
题意:有一个保守的老师,带领学生出去玩,但是他要保证学生不能成为夫妻,求在保证这个前提的情况下,他最多能带多少人。分析:典型的二分图点权最大独立集的问题,以男女为界,分为两组,实现二分图。注:因为src是0,所以不能再从0开始了,因为这个找了好长时间的错~~~~#include #include #include #include using namespace std;co原创 2012-10-02 16:34:53 · 487 阅读 · 0 评论 -
hdu1569方格取数(2)
跟hdu1565是一样的,但是杭电现在真的判不出来数组越界了,这已经是第二次了!!!#include #include using namespace std;const int oo=1e9;const int mm=1111111;const int mn=9999;struct Node{ int i,j,id,c;}nod[mn];int node,sr原创 2012-10-02 19:38:49 · 446 阅读 · 0 评论 -
nefu482二分图点权最大独立集
方格取数问题Time Limit 1000msMemory Limit 65536Kdescription 在一个有m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定原创 2012-10-01 16:37:21 · 332 阅读 · 0 评论 -
zoj3165二分图点权最大独立集+dinic匹配时的匹配数
题意:要想将一些学生分组,其中有一些学生不能跟另外一些学生在一起,问应该如何分组,在满足要求的前提下,使得人数最多。分析:就是一个方格取数的模型。二分图点权最大独立集。。。特点是要求出二分图两边匹配的数目。#include #include using namespace std;const int oo=1e9;const int mm=111111;const int原创 2012-10-02 14:51:24 · 377 阅读 · 0 评论 -
hdu1565二分图点权最大独立集
分析:同上一道题是一样的,就是一个方格取数的模型。#include #include using namespace std;const int oo=1e9;const int mm=111111;const int mn=999;struct Node{ int i,j,id,c;}nod[mm*mn];int node,src,dest,edge;int v原创 2012-10-01 16:46:55 · 309 阅读 · 0 评论 -
poj2987
#include #include using namespace std;const int oo=1e9;const int mm=1111111;const int mn=9999;int node,src,dest,edge;int ver[mm],flow[mm],next[mm];int head[mn],work[mn],dis[mn],q[mn],vis[mn];原创 2012-10-01 20:24:17 · 406 阅读 · 0 评论 -
poj1466最大独立集
跟上一道题差不多,都是在满足题目条件的情况下,使得人数最大。但是不同点在于没有性别之分,也就是说他可以两边的人都带,所以在求完最大匹配数之和再除以2.#include #include using namespace std;const int oo=1e9;const int mm=1111111;const int mn=1111;int node,src,dest,edge;原创 2012-10-02 19:28:42 · 349 阅读 · 0 评论 -
nefu483星际转移问题(分层图网络流)
星际转移问题Time Limit 1000msMemory Limit 65536Kdescription 由于人类对自然资源的消耗,人们意识到大约在2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原原创 2012-10-02 19:59:14 · 833 阅读 · 0 评论 -
hdu4160最小路径覆盖
题意:俄罗斯套娃,长宽高小的可以套在长宽高大的里面。典型的最小路径覆盖,问有多少条路径能覆盖到所有的点。纠结的是~~~杭电怎么改版了之后,数组开小了之间就WA了吗?找了好长时间错误,结果发现是数组开小了。。。#include #include using namespace std;const int oo=1e9;const int mm=111111;const int原创 2012-10-01 16:11:13 · 324 阅读 · 0 评论 -
nefu485分配问题(二分图的最佳匹配)
分配问题Time Limit 1000msMemory Limit 65536Kdescription 有n件工作要分配给n个人做。第i 个人做第j 件工作产生的效益为ij c 。试设计一个将n件工作分配给n个人做的分配方案,使产生的总效益最大。 对于给定的n件工作和n原创 2012-10-05 14:15:13 · 441 阅读 · 0 评论 -
图论的题目
【HDU】1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better 基础并查集★1102 Constructing Roads 基础最小生成树★1232 畅通工程 基础并查集★1233 还是畅通工程转载 2017-09-13 20:03:50 · 386 阅读 · 0 评论