![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
ZoneFv
这个作者很懒,什么都没留下…
展开
-
HDU 2586 How far away ? LCA的Tarjan离线算法
http://acm.hdu.edu.cn/showproblem.php?pid=2586LCA的Tarjan离线算法,由于询问的次数比较多,所以用普通的最短路算法肯定行不通思路:dfs+并查集用两个邻接表分别保存图和需要求的点在深搜的过程中,求出所有结点到根结点的距离保存在数组path[ ]中,把所要求的两点的距离保存在father[ ]数组里面,flag[ ]记录结点是否被搜原创 2012-08-04 17:13:16 · 1028 阅读 · 0 评论 -
nyoj 239 月老的难题 二分图最大匹配(匈牙利算法)
如果对匈牙利算法不太懂的——请猛击二分图最大匹配的第一题,主要是对增广路的理解,上面博客讲的很清楚,不再罗嗦,上代码——#include#include#includeusing namespace std;int n;vector g[505]; //记录边int mach[505],count;bool flag[505]; bool find(int x)原创 2012-08-07 11:05:12 · 1442 阅读 · 0 评论 -
hdu 1281 棋盘游戏 二分图最大匹配
题目分析:这一题的最大难点在于寻找关键点的个数,处理的方法是找出最大匹配数ans,然后枚举每一条边,如果删除这条边后再次求出的最大匹配与ans不相等,则是关键点,否则就不是关键点#include#includeconst int N=105;int map[N][N];int x[N*N],y[N*N];int flag[N],match[N];int n,m,k;int fin原创 2012-12-06 15:15:57 · 831 阅读 · 0 评论 -
hdu 2444(染色法判断二分图+匈牙利算法)
题意:首先判断是否是二分图,如果不是的话输出No,如果是的话输出最大匹配判断二分图:运用染色法,相邻的两个点间染不同的颜色,如果遇到相邻的点是同一颜色的,则不是二分图具体实现:通过广搜遍历所有的点,判断是否有相邻的点是同一颜色(一定要遍历所有的点),找最大匹配的时候就用匈牙利算法,最后找到的count要除以2,因为找最大匹配的时候每个点都找了,所以求出的count值是最大匹配的二倍网上原创 2012-12-05 20:35:08 · 2590 阅读 · 2 评论 -
HDU 1233 还是畅通工程
http://acm.hdu.edu.cn/showproblem.php?pid=1233题目比较简单,最小生成树,用kruskal写的,保存下来,以后当做模版用#include#includestruct stu{ int u,v,w;}r[5000];int p[100],n,m;bool cmp(struct stu r1,struct stu r2)原创 2012-07-30 11:30:56 · 640 阅读 · 0 评论 -
nyoj 434 Jungle Roads
http://acm.nyist.net/JudgeOnline/problem.php?pid=434比简单的一道最小生成树模板题,关键点在于建图时,数据读写格式的处理,由于没处理好,re了无数次#include#include#define MAX 1<<28int map[40][40];int n;int prime(){ bool flag[40];原创 2012-07-29 10:43:20 · 742 阅读 · 0 评论 -
nyoj 38 布线问题
http://acm.nyist.net/JudgeOnline/problem.php?pid=38第一道最小生成树,prime算法 #include#include#define MAX 1<<28int map[505][505];int e,v;int prime(){ bool flag[505]; int path[505],i,j,sum=原创 2012-07-28 16:33:29 · 977 阅读 · 0 评论 -
HDU 4318 Power transmission
http://acm.hdu.edu.cn/showproblem.php?pid=4318昨天比赛的时候看的这一题,感觉是最短路(PIAOYI竟然说这不是最短路,是深搜,必须又吵了一架),再加上这几天正在研究最短路,轻车熟路就用SPFA开始写起来了,写了一会儿,写出来了,测试样例也过了,提交,wa了,修改一下再交.......一直wa了17次。今天上午,听洛神讲解了这一题,顿悟啊变相原创 2012-07-28 12:03:57 · 777 阅读 · 0 评论 -
HDU 1874 畅通工程续
http://acm.hdu.edu.cn/showproblem.php?pid=1874第一次floyd算法,求最短路#include#includeusing namespace std;const int M=1<<29;int map[201][201];int n,m;void floyd(){ int k,i,j; for(k=0;k<n;原创 2012-07-25 09:42:09 · 609 阅读 · 0 评论 -
HDU 2544 最短路
http://acm.hdu.edu.cn/showproblem.php?pid=2544自己写的最短路第一题,dijstra算法 #include#includeusing namespace std;int dp[105][105];int dijstra(int beg,int end){ bool flag[105]; int path[105];原创 2012-07-24 18:35:03 · 598 阅读 · 0 评论 -
nyoj 115 城市平乱
http://acm.nyist.net/JudgeOnline/problem.php?pid=115dijstra算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。思路:以叛乱城市为起点,寻找最短的驻部队城市#include#include#define INT_MAX 1<<29int map[1005][1005];int m,n,s[105];原创 2012-07-25 18:35:15 · 2275 阅读 · 0 评论 -
hdu 3549 Flow Problem 最大流入门 EK算法
http://acm.hdu.edu.cn/showproblem.php?pid=3549核心思想:通过广搜搜来找增广路(简单的说就是可以增大流量的路),找的同时记录路径,到达汇点的时候根据记录的路径更新残量网路,一直到找不到增广路#include#include#includeusing namespace std;const int N=1005;int map[原创 2012-11-08 21:46:16 · 1194 阅读 · 2 评论