图论
天宇skyblue
这个作者很懒,什么都没留下…
展开
-
hdu2063 过山车 二分匹配 匈牙利算法
#include #include #include #include using namespace std;int Find(int a[][501] , int n , int x ,int visit[] ,int result[]){ for(int i = 1 ; i { if(a[x][i] == 1 &原创 2015-06-27 12:18:33 · 444 阅读 · 0 评论 -
codeforces590C 二维最短路+BFS+优先级队列
题目链接:http://codeforces.com/problemset/problem/590/C题目大意:给你一个n*m的图,#代表不同,'.'代表可以修路,数字1,2,3代表属于某个国家……然后让你求三个国家互相连通最少需要修几条路思路:和前几天做的一道题目类似,分边以1,2,3为起点求三遍最短路即可。。因为是二维,用BFS即可。注意队列一定要用优先级,因为你可能走原创 2016-05-12 17:31:22 · 773 阅读 · 0 评论 -
知道后续遍历和中序遍历还原二叉树并求层析遍历
题目:输入n代表二叉树节点数量,接下来两行分边n个整数,代表二叉树的后序遍历和中序遍历输出层次遍历的顺序#include #include #include #include #include #include #include #include #include #include #include #include #include using n原创 2016-05-15 16:09:56 · 410 阅读 · 0 评论 -
hdu2682 最小生成树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2682题目大意:n个城市,每个城市有初始欢乐值,城市AB有路连通如果A的欢乐值为质数或者B的欢乐值为质数或者A的欢乐值+B的欢乐值为质数,权值为min(A,min(B , |A-B|))。问将所有城市连在一起的最小花费。思路:根据规则建图后,求最小生成树。#include原创 2016-06-02 17:50:15 · 478 阅读 · 0 评论 -
hdu2458 二分匹配
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;//#pragma comment(linker, "/STACK:102400000,1024原创 2016-06-07 17:21:20 · 296 阅读 · 0 评论 -
hdu5695 拓扑排序
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5695题目大意:n个人,最开始每个人有一个唯一的ID,从1到N,在排好队之后,每个同学会找出包括自己在内的前方所有同学的最小ID,作为自己评价这堂课的分数。麻烦的是,有一些同学不希望某个(些)同学排在他(她)前面,在满足这个前提的情况下,新晋体育课老师——度度熊,希望最后的排队结果可以使得所原创 2016-05-21 18:44:14 · 468 阅读 · 1 评论 -
hdu1827 强连通分量tarjan(初战)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1827题目大意:听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家,虽然他手上有所有人的联系方式,但是一个一个联系过去实在太耗时间和电话费了。他知道其他人也有一些别人的联系方式,这样他可以通知其他人,再让其他人帮忙通知一下别人。你能帮Wiskey计算出原创 2016-06-06 20:10:42 · 274 阅读 · 0 评论 -
hdu5723 最小生成树+DFS(距离和,期望)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5723题目大意:找出最小生成树以及任意两点间距离的期望。思路:根据图建立最小生成树,然后DFS求距离和然后求期望即可。求出来最小生成树需要重新建图,建图需要 双向 边,然后DFS求出每条边贡献的次数,除以总共多少种情况就可以了,,。,,,,,,,ps:比赛时代码写残疾了**#原创 2016-07-19 22:26:50 · 365 阅读 · 0 评论 -
hihocoder1378 网络流之最大流最小割
题目链接:http://hihocoder.com/problemset/problem/1378思路:描述小Hi:在上一周的Hiho一下中我们初步讲解了网络流的概念以及常规解法,小Ho你还记得内容么?小Ho:我记得!网络流就是给定了一张图G=(V,E),以及源点s和汇点t。每一条边e(u,v)具有容量c(u,v)。网络流的最大流问题求解的就是从s到t最原创 2016-11-03 20:49:36 · 496 阅读 · 0 评论 -
hihocoder1393 网络流之二分图多重匹配
题目链接:http://hihocoder.com/problemset/problem/1393#题目大意:学校的秋季运动会即将开始,为了决定参赛人员,各个班又开始忙碌起来。小Hi和小Ho作为班上的班干部,统计分配比赛选手的重任也自然交到了他们手上。已知小Hi和小Ho所在的班级一共有N名学生(包含小Hi和小Ho),编号依次为1..N。运动会一共有M原创 2016-11-04 14:59:50 · 994 阅读 · 0 评论 -
hihocoder1394网络流三之最小路径覆盖
题目连接:一定要见双向边,第二次了…………………………。因为这两边的点是一样的题目:描述国庆期间正是旅游和游玩的高峰期。小Hi和小Ho的学习小组为了研究课题,决定趁此机会派出若干个调查团去沿途查看一下H市内各个景点的游客情况。H市一共有N个旅游景点(编号1..N),由M条单向游览路线连接。在一个景点游览完后,可以顺着游览线路前往下一个景点。原创 2016-11-06 18:48:50 · 712 阅读 · 0 评论 -
hihocoder1398 网络流五之最大权闭合子图
题目链接:http://hihocoder.com/problemset/problem/1398题目:描述周末,小Hi和小Ho所在的班级决定举行一些班级建设活动。根据周内的调查结果,小Hi和小Ho一共列出了N项不同的活动(编号1..N),第i项活动能够产生a[i]的活跃值。班级一共有M名学生(编号1..M),邀请编号为i的同学来参加班级建设活动需要消耗原创 2016-11-07 21:00:35 · 720 阅读 · 0 评论 -
codeforces 721C 记忆化搜索 / dp
题目链接:http://codeforces.com/contest/721/problem/C题目大意:给你n个点,m条有向边,每条边的距离,问从1到n最多可以经过多少点是的总距离不超过t,按路径顺序输出这些点思路:dp[i][j]表示到达第i个点经过了j个点所用的最少距离。从1开始记忆华搜索,注意剪枝和路径的记录。#include #inc原创 2016-10-28 21:31:21 · 490 阅读 · 0 评论 -
codeforces28B
题目链接:codeforces 28 B. pSort题目大意:一个数列,初始顺序为S[i] = i;目标顺序为a[i] = i;每个位置i的元素都可以和位置j的元素互换位置,当前仅当|i-j| = d[i]。问能否有初始数列到达目的数列思路:乍一看,有点蒙。细想一下其实也不难。因为他只问每个数能否到达目的位置,也就是说有没有一条路是的S[i] 和a[i] 连通起来。因为n很小,所原创 2016-05-09 19:55:12 · 716 阅读 · 0 评论 -
codeforces557D 二分图+奇环判断
题目链接:http://codeforces.com/problemset/problem/557/D题目大意:给你一个无向图,n个节点m条边,问最少添加多少条边使图存在奇环(环的节点个数为奇数,环中没有重复节点),并且有多少种方案数思路:1、若无边,即m等于0,则人选3个节点即可,答案为C(n ,3) = n * (n-1)*(n-2) / 6; 答案为 3 C(n原创 2016-05-12 13:02:41 · 827 阅读 · 0 评论 -
codeforces131D 环最短路
题目链接:codeforces 131D Subway题目大意:给你一个图,存在一个环,问所有节点到环的最短距离,节点n的个数为3000思路:因为n只有3000 , 所以可以暴力求出环由哪些节点组成。具体方法就是将节点度数为1的度数减1,与他连接的节点度数减1,直至没有度数为1的节点。那么剩余度数大于等于2的节点就是组成环的节点。接下来只需要从环的每个节点dfs求出每个点的距离即可原创 2016-05-11 10:21:22 · 1192 阅读 · 0 评论 -
cf592d Super M 树的直径 + 树形dp
题意:给出一棵树,树上有n个点,现从中选出m个点,并可以从任意一个点出发,求出到达所有点的最短时间。思路:首先这些点中距离最远的两个点作为起始和结束点,即m点组成的树里面的直径。然后对于这条直径上的每个点u,用树形DP求出从u出发,计算经过子树中选中的的点并返回的最小时间,最后 ,加上走完直径的时间就是答案。1、为什么是选择直径作为主线,因为选取其他点时可以证明经过的距离不是最短,原创 2015-11-04 11:12:42 · 500 阅读 · 0 评论 -
hdu5452 最小割,图论
题目大意:给定一个图,前n-1条边为最小生成树的边,后m-n+1条边为图,求最少删除多少条边才能使原图不连通,其中最小生成树的边只能删除一条。思路:将树上边的度和图上的度记录,只能删除树上度为一的边,在里面度数和最小的节点,最小值就是结果。#include using namespace std;#define mem(a) memset(a , 0 , sizeof(a))原创 2015-10-21 10:24:52 · 527 阅读 · 0 评论 -
hdu5438 连通子图
题目大意:将只有一个管道与其他池塘相连的池塘都去掉,最后剩下的n个联通图中,找有奇数个池塘的连通图中所有池塘的val值和。思路:将所有单管道池塘去掉 , 然后搜索每一个连通图即可。#include #include #include #include #include #include #include #include #include #include原创 2015-09-17 15:38:39 · 357 阅读 · 0 评论 -
spfa ,就邻接表建图模板
struct edge{ int u , v , w; int next; edge(int u , int v , int w) { this -> u = u; this -> v = v; this -> w = w; } edge(){}};int id; //当前原创 2015-12-11 11:14:02 · 377 阅读 · 0 评论 -
hdu1269 强连通分量
找个板子扔这里,慢慢学习#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 10005#define MOD原创 2015-12-03 16:22:10 · 272 阅读 · 0 评论 -
51nod 1640 天气晴朗的魔法 prime队列+最小生成树+最大生成树+邻接表
题目:51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。由于逆天改命的魔法过于暴力,所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此原创 2016-01-24 20:27:52 · 886 阅读 · 0 评论 -
hdu1272 并查集
题意:判断一个图是否两两节点有且只有一条路可达思路:并查集判断有几个连通图 , 是否存在环ps:0 0应该输出yes#include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2015-12-23 21:15:35 · 245 阅读 · 0 评论 -
hdu1301 kruskal+并查集
题目大意,求最小生成树思路,kruskal算法,因为n小,暴力找到最小边即可,复杂度o(n^3)。判断是不是在一个图的时候用了并查集!刚开始没过,改成64位过了。在练并查集,kruskal的复杂度什么的就不管了………………#include #include #include #include #include #include #include #include #原创 2015-12-25 16:45:16 · 229 阅读 · 0 评论 -
51nod树的距离之和 DFS+递推
题目:给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之和。Input第一行包含一个正整数n (n <= 100000),表示节点个数。后面(n - 1)行,每行两个整数表示树的边。Output每行一个整数,第i(i = 1,2,...n)行表示所有节点到第i个点的距离之和。Input示例41原创 2016-02-01 19:50:16 · 452 阅读 · 0 评论 -
hdu1535spfa+邻接表
题目大意;有向图,求从1到i的距离和+i到1的距离和(最短)思路:邻接表建图,正向一个,反向一个。spfa跑两遍即可。。#include #include #include #include #include #include #include #include #include #include #include #include #include u原创 2016-03-11 20:46:55 · 225 阅读 · 0 评论 -
hdu5521 spfa+超图转换+最短路+邻接表建图
题目大意:给你一个图,一个人在第一个节点,一个人在最后一个节点,问两人能不能相遇,相遇时的最短距离是多少。输入边的时候十亿集合形式输入,每个集合内的两两节点可达,距离给定。2015沈阳现场赛题目,当时被建图坑了,没有想清楚就敲,最后没过,暴力建边,边数会达到1e12,肯定超时,后来学习了 别人的解法,给每一个点集S加一个入点和一个出点,则点数和别树就在可以接受的范围内。不说了,直接贴代码#in原创 2015-12-11 11:08:10 · 590 阅读 · 0 评论 -
cug1697 spfa+邻接表
题目大意:赤壁决战,曹操在有利形势下,轻敌自负,指挥失误,终致战败。孙权、刘备在强敌进逼关头,结盟抗战,扬水战之长,巧用火攻,终以弱胜强。赤壁之战结束之后魏蜀吴三国决定握手求和,但是因为之前四处交战,把道路全部毁坏了,现在需要重新修路使得三国的国都能够连通.诸葛亮是这个项目的负责人,但是他太聪明了,对于这种题目都懒得思考了,于是就交给你了。思路:因为要求三个和城市之间的最短路,最短路一原创 2016-05-11 09:16:11 · 501 阅读 · 0 评论 -
hihocoder 1369 网络流之最大流
题目链接:http://hihocoder.com/problemset/problem/1369思路:每次找一条不停地能到达目的点的路(增广路),然后更新图的流量。 ,使用:Ford-Fulkerson算法#include #include #include #include #include #include #include #include #inc原创 2016-11-02 21:13:12 · 520 阅读 · 0 评论