图论
文章平均质量分 73
huatian5
run
展开
-
hackerrank Roads and Libraries(DFS/并查集)
题目:https://www.hackerrank.com/challenges/torque-and-development/problem 题意:q组test,n个城市,m条损坏的路,在每个城市修图书馆代价为clib,修每条路为croad,求所有城市都能接触到图书馆的最小花费 思路:首先情况有两种,每个L点连通图修一个图书馆、L-1路,每个L点连通图修L个图书馆,所以如果croad >= c原创 2017-10-16 16:20:40 · 468 阅读 · 0 评论 -
51 nod 1444 破坏道路(BFS+枚举)
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1444 思路:先求出各点的最短路(n<=3000),然后枚举重叠部分,寻找最少路数 代码:#include <bits/stdc++.h>using namespace std;const int N = 3005;typedef long long ll;i原创 2017-09-22 17:39:34 · 275 阅读 · 3 评论 -
HDU-4370 0 or 1(SPFA)
题意:有个X矩阵和C矩阵,给你C矩阵,让你求the minimum of ∑Cij*Xij(11.X12+X13+...X1n=12.X1n+X2n+...Xn-1n=13.for each i (1ki (1ij (1把Xij理解成i和j是否联通,三个条件分别转化为图的概念:1号点的出度为0,n号点的入度为0,其他点入度和出度相等。而Cij则可以代表花费(原创 2017-04-26 19:38:33 · 521 阅读 · 0 评论 -
SCU 4439: Vertex Cover(最小点覆盖)
题目:http://acm.scu.edu.cn/soj/problem.action?id=4439 题意:给你n个点,m条边,让你 思路:最小点覆盖 待续原创 2017-05-02 22:45:03 · 1251 阅读 · 3 评论 -
POJ - 3660 Cow Contest(floyd)
problem:http://poj.org/problem?id=3660题意:n个奶牛,给你m对奶牛互相胜负的关系,让求有多少奶牛的名次可以确定。思路:如果这个奶牛,意即这个奶牛和其他n-1个奶牛的关系已经确定,所以我们只需要count多少奶牛符合这种条件。如果要确定没有直接胜负关系的奶牛们,要用floyd算法确定各奶牛间的关系。代码:#include#include#原创 2017-04-13 20:28:25 · 576 阅读 · 0 评论 -
Codeforces Round #189 (Div. 2) B
B. Ping-Pong (Easy Version)time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIn this problem at each moment原创 2016-09-28 20:32:54 · 618 阅读 · 0 评论 -
HDU-1690 Bus System(Floyd)
Bus SystemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8294 Accepted Submission(s): 2204Problem DescriptionBecause of the huge原创 2016-10-27 20:55:46 · 408 阅读 · 0 评论 -
HDU-5883 The Best Path(欧拉通路和欧拉回路)
The Best PathTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 952 Accepted Submission(s): 394Problem DescriptionAlice is planning原创 2016-10-03 10:36:49 · 553 阅读 · 0 评论 -
HDU-1878 欧拉回路(DFS)(并查集)
欧拉回路Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13302 Accepted Submission(s): 4964Problem Description欧拉回路是指不令笔离开纸面,可画过图中每条边仅一原创 2016-09-21 20:34:32 · 448 阅读 · 0 评论 -
UVA 1395 Slim Span(MST)
http://vjudge.net/problem/UVA-1395题目大意:让求最小生成树满足苗条度最小的条件(苗条度:最大边与最小边的差值)思路:在书上。根据Kruskal的思想,当所有点连通了就停止枚举左边界,记录最小苗条度。紫书的代码好稠#include#include#include#include#include#includeusing namespace原创 2016-09-20 14:42:59 · 1319 阅读 · 0 评论 -
FZU Problem 2232 炉石传说(匈牙利算法)
Problem 2232 炉石传说Accept: 170 Submit: 619Time Limit: 1000 mSec Memory Limit : 32768 KB Problem DescriptionGG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说。但是传统的炉石传说对于刚入门的GG学长来说有点复杂,所以他决定自己开发一个简化版原创 2016-09-06 20:53:49 · 737 阅读 · 0 评论 -
HDU-2586 How far away ?(LCA)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:有一棵树,每次询问u,v的距离 思路:Tarjan算法 代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;cons原创 2017-09-19 21:21:36 · 327 阅读 · 0 评论 -
hihocoder #1069 : 最近公共祖先·三(ST求LCA)
题目:http://hihocoder.com/problemset/problem/1069?sid=1175440 思路:就是map存储求LCA,然而开始模板弄错了,wa了n次 代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<string>原创 2017-09-20 17:20:33 · 384 阅读 · 0 评论 -
HDU-5961(bitset)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5961 思路:bitset#include<bits/stdc++.h>using namespace std;const int N = 2016+5;char str[N][N];bitset<N> bs[2][N],tmp;bool check(int n){ for(int i =原创 2017-08-09 09:19:11 · 295 阅读 · 0 评论 -
51nod 1445 变色DNA问题(Dijkstra)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445题意: 注意:如果colormap[i][j]=’Y’的话,i到j需要i不到1~j-1,就是对于邻接矩阵而言,i到j的代价是第i行的第一个到第j-1个为Y的数量。 思路:知道了i到j的代价,就直接最短路就行了 好久没写过dijk了,小于号竟然写反 代码原创 2017-07-16 19:54:15 · 398 阅读 · 0 评论 -
HDOJ 2544 最短路(四种做法)
优化后的SFPA和Dijkstra:SPFA模板:```#include using namespace std;typedef long long ll;const int N = 100005;struct edge{ int to,nxt,w; edge(int t=0,int n=0,int w=0):to(t),nxt(n),w(w){}}E[N*原创 2016-06-20 21:49:15 · 696 阅读 · 0 评论 -
hackerrank Journey to the Moon(并查集)
题目:https://www.hackerrank.com/challenges/journey-to-the-moon/problem 题意:给你p对人,每一对都是生活在同一个城市中的,让你选不在同一城市的两个人,求方案数 思路:肯定是用并查集的,统计每个个数,然而开始用的map统计wa,然后改了并查集统计就A了 代码:#include <bits/stdc++.h>using names原创 2017-10-17 17:33:36 · 310 阅读 · 0 评论 -
HDU-6201 transaction transaction transaction(树dp / 最长(短)路)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6201 题意:n个城市,n-1条路,商人要选一个城市买书,一个城市卖书,每个城市都有对应的price,每条路都有对应的的花费,求最大的money 思路: 树dp,dp[u][0]代表买书最大收益,dp[u][1]代表卖书最大收益 dp[u][0] = max(dp[u][0],dp[v][0]-w);原创 2017-09-12 15:55:33 · 230 阅读 · 0 评论 -
POJ-1201 Intervals(差分约束)
题目:http://poj.org/problem?id=1201 题意:有n个区间,[ai,bi]区间至少选择ci个点,要满足这些条件,最少要多少个点 思路: d[v]-w>=d[u],d[i]-d[i-1] <= 1,d[i]-d[i-1] >= 0 v,u建负边,i-1,i建正边1,建负边0,依旧是求最短路,maxn->minn 代码:#include<iostream>#incl原创 2017-09-11 11:41:20 · 271 阅读 · 0 评论 -
POJ-3169 Layout(差分约束)
题目:http://poj.org/problem?id=3169 题意:n个奶牛一列,两头奶牛之间的距离>=0。然后又ml对奶牛满足 距离<=w,md对奶牛满足距离>=w,求1到n的最大距离 无法找到满足的情况,输出-1 最大距离为INF,输出-2 思路:d[v]-w>=d[u],加入到差分约束,<=w建u,v的正边,>=w建负边,求最短路 代码:#include<iostream>原创 2017-09-11 11:40:03 · 302 阅读 · 0 评论 -
HDU-3987 Harry Potter and the Forbidden Forest(最大流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3987 题意:求边数最少的割集 思路:与上文一样 代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll INF = 1e18;const int N = 500005;int n,m,s,t,tot原创 2017-09-17 22:00:07 · 280 阅读 · 0 评论 -
HDU-6214 Smallest Minimum Cut(最大流)
题目:HDU-6214 题意:让求最小割的最小边数 思路:建图时对cap乘上m并加1,然后dinic,最大流mod m就是边数 代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;const int N = 10005;int n,m,s,t,tot;原创 2017-09-17 21:47:25 · 335 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow(最大流/规律)
题目:https://nanti.jisuanke.com/t/17118 题意:0~n-1个点,任意两点i,j,流量为i xor j,求0~n-1的最大流 思路:规律 首先打表 以下参考http://blog.csdn.net/ShiWaiGaoRen12345/article/details/78007721 题解: 打印出来相邻两个数的差是有规律的, 差值的规律如下:转载 2017-09-17 10:36:28 · 284 阅读 · 0 评论 -
UVA-11080 Place the Guards(二分图染色)
UVA-11080题意:用最少的士兵看守每条街道,但不可以相邻。//代码参考自,,,#include#include#include#includeusing namespace std;const int maxn = 230;int n , m , c[maxn];vector G[maxn];int color_now , color_all;bool d原创 2016-09-05 17:38:03 · 432 阅读 · 0 评论 -
Codeforces-687A NP-Hard Problem(二分图染色)
A. NP-Hard Problemtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputRecently, Pari and Arya did some researc原创 2016-09-04 17:09:46 · 486 阅读 · 0 评论 -
最小生成树 《啊哈算法》读书笔记
最小生成树:任何只由G的边构成,并包含G的所有顶点的树称为G的生成树(G连通). 加权无向图G的生成树的代价是该生成树的所有边的代码(权)的和. 最小代价生成树是其所有生成树中代价最小的生成树。 假设WN=(V,{E})是一个含有n个顶点的连通网,则按照克鲁斯卡尔算法构造最小生成树的过程为:先构造一个只含n个顶点,而边集为空的子图,若将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有n原创 2016-07-08 14:18:59 · 2145 阅读 · 1 评论 -
HDU 1272 HDU 1308&&POJ 1308(树的判断)(并查集)
小希的迷宫Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 41768 Accepted Submission(s): 12880Problem Description上次Gardon的迷宫城堡小希玩了很久(见P原创 2016-07-08 16:36:16 · 721 阅读 · 0 评论 -
图论五百题
=============================以下是最小生成树+并查集======================================【HDU】1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better转载 2016-06-17 21:54:35 · 964 阅读 · 0 评论 -
HDOJ-1856 More is better&&POJ-1611(并查集)
More is betterTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others)Total Submission(s): 22851 Accepted Submission(s): 8297Problem DescriptionMr Wang want原创 2016-07-12 10:36:15 · 603 阅读 · 0 评论 -
HDU-1879 继续畅通工程(Kruskal)(Prim省略)
继续畅通工程Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21155 Accepted Submission(s): 9028Problem Description省政府“畅通工程”的目标是使全省任何两个村庄原创 2016-07-15 00:08:31 · 494 阅读 · 0 评论 -
HDOJ-1102 Constructing Roads(最小生成树)两种做法
题目最小生成树Kruskal算法/*HDU 1102 Constructing Roads题意:有n个乡村,修路,然后保证每两条路之间连接。如果A和B连接,那么A和B直接连接或者中间还有一个乡村,间接连接。已经有一些路了,你的任务是找出来一路径连接所有乡村。输入:i到j的长度,注意去重边最小生成树,,,*/#include#include#includeusing原创 2016-07-13 11:53:03 · 500 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home
POJ 2387这个题目就是个裸的Dijkstra算法,为嘛我考虑了双向边和重边以后wa了那么多次,弄的我整个人心情都不好了,重写了那么多次才过,而且还不知道哪出了问题就过了,只能对自己说:年轻人,淡定……#include#include#include#includeusing namespace std;const int INF = 0x3f3f3f3f;const i原创 2016-06-29 22:51:33 · 388 阅读 · 0 评论 -
HDU 2066 一个人的旅行() (Dijkstra)
无向边单源最短路思路:Dijkstra算法没想到竟然是核心算法里面的minn的初始化放错了地方,找bug找了半个多小时啊,良好的习惯太重要了。/*HDU 2066 一个人的旅行*/#include#include#include#includeusing namespace std;const int INF = 10000005;int e[1005]原创 2016-06-26 22:40:44 · 591 阅读 · 0 评论 -
BZOJ 1059 矩阵游戏 (二分图最大匹配) (匈牙利算法)
思路:这里要知道,如果要得到对角线全为黑色(1)的话,使得必须存在黑棋的行和列都不一样的情况,要找这种情况,就相当于,把行和列分别当成二部图(也可叫成二分图)的两个子集,相当于求解二分图的最大匹配。模板已由前几篇文章给出,所以只需要稍作修改就好了。#include#include#includeusing namespace std;int n;int match[205][20原创 2016-04-13 22:32:32 · 653 阅读 · 0 评论 -
HDU 2063 过山车(匈牙利算法)(二分图求最大匹配)
过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16667 Accepted Submission(s): 7281Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可原创 2016-03-30 12:00:42 · 468 阅读 · 0 评论 -
初探并查集
并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。进行快速规整。(NOCOW)并查集也称为不相交集数据结构。下面是一维数组模拟:#include#includeusing namespace std;int n,m;int f[1000]={0},k,sum=0;void Init(){原创 2016-07-08 10:23:26 · 474 阅读 · 0 评论 -
离散数学第六章 图
图 一.图的基本概念1.无向图与有向图此处要熟悉一下无序对与无序积的概念;集合中有元素重复出现的话就称为多重集合,简称多重集,元素在多重集合中出现的次数称为该元素的重复度;无向图:只有无向边的图标定图:顶点标定了名字非标定图:顶点未标定名字有向图:只有有向边的图n阶图:有n个顶点的图零图:没有边平凡图:一阶零图(只有一个顶点,没有边)空图:顶点集原创 2016-06-19 10:27:24 · 10936 阅读 · 0 评论 -
hdu 1548 A strange lift(最短路)
题目大意:思路:BFS:/*hdu 1548 A strange lift题目大意:这是一个奇怪的楼梯。你可以停在任何你想停的一层……如果你在第i层,这一层有个值Ki,按了“UP”,你就上升Ki层,即到了i+Ki层,“DOWN”就是减,同“UP”A到B至少需要多少次操作,无法到达就输出-1思路:bfs求最短路,使用队列*/#include#include#i原创 2016-06-20 20:08:00 · 570 阅读 · 0 评论 -
最短路径 啊哈算法读书笔记
深度优先搜索求最短路径单向路径:#include#includeusing namespace std;const int INF=99999999;//正无穷int minn=INF;int n,e[105][105],book[105];void dfs(int cur,int dis){ int j; //已经超过前面查找的最短路径,就不需要在查原创 2016-06-18 16:17:19 · 1252 阅读 · 0 评论 -
HDU-2680 Choose the best route(SPFA)
Choose the best routeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13284 Accepted Submission(s): 4295Problem DescriptionOne day原创 2016-09-15 17:57:41 · 462 阅读 · 0 评论