图论
文章平均质量分 80
Stayaccept
这个作者很懒,什么都没留下…
展开
-
51nod1076(边双联通分量)
链接:点击打开链接题意:给出一个无向图G的顶点V和边E。进行Q次查询,查询从G的某个顶点V[s]到另一个顶点V[t],是否存在2条不相交的路径。(两条路径不经过相同的边)(注,无向图中不存在重边,也就是说确定起点和终点,他们之间最多只有1条路)代码:#include #include #include #include #include #include #include原创 2017-11-04 17:34:26 · 311 阅读 · 0 评论 -
hdu1285(拓扑排序)
链接:点击打开链接题意:输入N,M,N代表N个数,M代表M个关系,输入P1,P2,代表P1胜P2,即排名时P1排在P2前面,输出最后排名顺序,因为答案可能不唯一,输出时编号小的队伍在前代码1:#include #include #include #include #include #include #include using namespace std;struct cm原创 2015-08-17 17:50:35 · 785 阅读 · 0 评论 -
hdu4460(prim)
链接:点击打开链接题意:已知一条边必须连接,求最小生成树代码:#include #include #include #include #include #include #include #include #include #include using namespace std;const int INF=0x3f3f3f3f;double d[105],原创 2015-07-04 19:52:26 · 611 阅读 · 0 评论 -
poj1144(tarjan求割点)
链接:点击打开链接题意:求无向图中割点个数代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;set se;vector G[105];int dfn[105],low[1原创 2017-07-29 14:23:10 · 410 阅读 · 0 评论 -
hdu1068(最大独立集)
链接:点击打开链接题意:给出n个人,给出n个人的关系,具体看样例(0: (3) 4 5 6代表编号为0的与编号为4,5,6的有关系)问一点关系没有的有几个人代码:原创 2015-08-25 16:33:58 · 618 阅读 · 0 评论 -
hdu2236(匈牙利算法+二分)
链接:点击打开链接题意:在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小代码:#include #include #include #include using namespace std;int s[105][105],match[105],vis[105];int n,p,low,high,mid,minn,maxx;原创 2015-08-24 12:36:46 · 1006 阅读 · 0 评论 -
hdu3790(双关键字最短路)
链接:点击打开链接题意:给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。代码:#include #include #include #include #include #include #include using namespace std;const int INF=0x原创 2017-07-06 23:23:41 · 339 阅读 · 0 评论 -
hdu2433(最短路径树)
链接:点击打开链接题意:给出一个n个点m条边的无向图,问删除每一条边后每两个点最短路的和代码:#include #include #include #include #include #include #include #include using namespace std;const int INF=0x3f3f3f3f;int n,m;int x[3005],y原创 2017-06-27 14:21:34 · 885 阅读 · 1 评论 -
poj1860(spfa)
链接:点击打开链接题意:钱的种类为N,M条命令,拥有种类为S这类钱的数目为V,命令为将a换成b,剩下的四个数为a对b的汇率和a换成b的税,b对a的汇率和b换成a的税,公式为(钱数-税)*汇率代码:#include #include #include #include #include #include using namespace std;int n,m,s,vis[105原创 2015-08-20 14:48:21 · 1381 阅读 · 0 评论 -
hdu4751(二分图判定)
链接:点击打开链接题意:给出n个人的关系,现在问是否可以分成两个集合使得每个集合中的人都互相认识代码:#include #include #include #include #include using namespace std;int n,sig,col[105],s[105][105];void dfs(int S,int co){ int i; if(原创 2017-07-05 18:40:27 · 562 阅读 · 0 评论 -
poj2240(floyd)
链接:点击打开链接题意:有一些钱的汇率,看是否有一种钱经过兑换能够产生利润代码;#include #include #include #include using namespace std;double dis[300][300];int n,m;struct node{ char str[500];}s[500];int cmp(struct node a,s原创 2015-08-19 18:28:21 · 536 阅读 · 0 评论 -
hdu1599(floyd求最小环)
链接:点击打开链接题意:有一些景点,看其中能从一个景点走至少要经过2个其他不同的景区,而且不能重复经过同一个景区,每条路线需要一些花费,找出一条花费最少的路线,如果不能输出It's impossible.代码:#include #include #include #include #define maxx 99999999using namespace std;int dis[原创 2015-08-19 18:04:03 · 1516 阅读 · 0 评论 -
hdu1596(Dijkstra)
链接:点击打开链接题意:XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。但是8600 的数学不原创 2017-06-24 23:04:01 · 411 阅读 · 0 评论 -
hdu5521(spfa)
链接:点击打开链接题意:有N个点,两个人,一个人住在1点,另一个人在n点,有M个点集,集合内的数表示任意两点的距离为w,现在1~N中找一点x,使得1到x和N到x的最大值最小,并输出所有可能的点代码:#include #include #include #include #include #include #include using namespace std;const原创 2017-07-03 13:07:23 · 317 阅读 · 0 评论 -
hdu3696(spfa求最长路)
链接:点击打开链接题意:给出n个物品的价值和数量,有m个关系,每种关系的格式为(a0,b1,a1,b2,a2,…,bk-1,ak-1)表示1个ai可以转换成bi+1个ai+1,问最后n个物品转换后的最大价值和代码:#include #include #include #include #include #include #include #include #include原创 2017-07-02 14:14:57 · 1445 阅读 · 0 评论 -
hdu5137(spfa)
链接:点击打开链接题意:给定一个有向图,问去点2~N-1中的一个点后,从1到N的最大距离代码:#include #include #include #include #include #include #include const int INF=0x3f3f3f3f;using namespace std;struct edge{ int原创 2016-03-22 20:55:55 · 425 阅读 · 1 评论 -
hdu4786(kruskal)
链接:点击打开链接题意:给出一些权值为0或1的边,问是否能代码:原创 2016-03-29 20:44:15 · 382 阅读 · 0 评论 -
hdu2063(匈牙利算法)
链接:点击打开链接题意:输入数据的第一行是三个整数K,M,N分别表示可能的组合数目,女生的人数,男生的人数。01代码:#include #include #include #include using namespace std;int k,m,n;int rel[1005][1005],vis[505],girl[505];int hungarian(int x){原创 2015-08-23 18:35:33 · 770 阅读 · 0 评论 -
zoj2588(tarjan求割边)
链接:点击打开链接题意:求无向图中割边数目代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;const int siz=10005;int dfn[siz],low[siz原创 2017-07-31 11:58:08 · 285 阅读 · 0 评论 -
hdu6184&&51nod2212(三元环计数)
链接:点击打开链接题意:给出n个点m条边的无向图,问存在多少种V=(A,B,C,D),E=(AB,BC,CD,DA,AC)的子图代码:#include <vector>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>...原创 2017-10-18 20:18:15 · 391 阅读 · 0 评论 -
poj2728(最优比率生成树)
链接:点击打开链接题意:给出n个点的坐标和每个点的高度,先要找出n-1条边使得n个点形成一个树的同时,价值的和/费用的和最小,每条的价值为两个端点高度差的绝对值,费用为两个端点的欧几里得距离代码:#include #include #include #include #include #include #include #include using namespace st原创 2017-09-25 11:33:10 · 331 阅读 · 0 评论 -
hdu3440(差分约束)
链接:点击打开链接题意:有N个在一条直线上的房子, 每个房子有着不同的高度, 一个超人可以将这些房子左右移动,但不能改变房子之间的相对位置.现在超人要从最矮的房子跳到刚好比他高的房子上面, 且每次跳的房子都要比当前房子要高.那么最后超人肯定会跳到最高的房子上面, 现在给出超人能够跳的最远距离, 问: 如何摆放这些房子, 使得超人能够经过所有的房子跳到最高的房子, 又要使最矮的房子和最高的房子之原创 2016-06-11 13:55:58 · 509 阅读 · 0 评论 -
poj2983(查分约束)
链接:点击打开链接题意:给出n个点,和m种关系,看是否能够满足所有关系,关系的形式有两种一种是u-v=w,一种是u-v>=1代码:#include #include #include #include #include #include using namespace std;const int INF=0x3f3f3f3f;int n,d[1005],deg[1005],原创 2017-08-13 18:09:38 · 248 阅读 · 0 评论 -
hihocoder1181(fleury)
链接:点击打开链接题意:给出n个点m条边的无向图输出欧拉路径代码:#include #include #include #include #include #include #include #include #include #include using namespace std;int n,m,s[1005][1005];vector ans;void df原创 2017-07-27 21:04:23 · 441 阅读 · 0 评论 -
CodeForces 402E(强连通分量)
链接:点击打开链接题意:给一个矩阵A,每一个元素都大于等于0,判断A^k是否所有元素都大于0代码:#include #include #include #include #include #include using namespace std;int V;vector G[2005];vector rG[2005];vector vs;bool used[2005]原创 2015-11-06 22:55:05 · 919 阅读 · 0 评论 -
poj1201(差分约束)
链接:点击打开链接题意:给出n个三元组(u,v,w),要求每个[u,v]区间内至少取w个整数,为最少需要几个整数能够满足所有的区间代码:#include #include #include #include #include #include #include #include #include #include #include using namespace st原创 2017-08-11 12:41:15 · 247 阅读 · 0 评论 -
poj2186(Tarjan scc)
链接:点击打开链接题意:给定N头牛的牛群和M个有序对(A,B),(A,B)表示牛A喜欢B,并且该关系具有传递性,例如(A,B),(B,C)则(A,C),求被其他所有牛喜欢的牛的总数代码:#include <vector>#include <stdio.h>#include <stdlib.h>#include <string.h>...原创 2015-11-02 20:24:10 · 396 阅读 · 0 评论 -
hdu3592(差分约束)
链接:点击打开链接题意:一些牛按序号排成一条直线,有两种要求,A和B距离不得超过X,还有一种是A和B距离不得少于Y,问1和N可能的最大距离。代码:#include #include #include #include #include #include #include using namespace std;const int INF=0x3f3f3f3f;int n,原创 2016-07-01 11:20:27 · 874 阅读 · 0 评论 -
hdu1116&&poj1386(有向图判欧拉路)
链接:点击打开链接题意:给出一些单词看能否首位相接代码:#include #include #include #include using namespace std;int fa[1005],in[1005],out[1005],vis[1005],temp[1005];char s[1005];int found(int x){原创 2015-08-18 11:20:09 · 768 阅读 · 0 评论 -
poj2513(无向图判欧拉路)
链接:点击打开链接题意:一堆木棍左右两端涂有颜色,相同颜色的可以连接在一起,问所有木棍能否都连上,输入到EOF截止代码:#include #include #include #include using namespace std;struct node{ char str[20];}s[550005],stemp[550005];char a[20],b[20],t原创 2015-08-18 13:36:35 · 821 阅读 · 1 评论 -
hihocoder1184(边的双联通分量)
链接:点击打开链接题意:给出n个点m条边的无向图,输出边的双联通分量的个数,并输出每个点所在的双联通分量中最小的点的编号代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;co原创 2017-08-01 21:12:42 · 322 阅读 · 0 评论 -
hdu1281(匈牙利算法)
链接:点击打开链接题意:N*M的棋盘,接下来的K行描述了所有格子的信息:每行两个数X和Y,表示了这个格子在棋盘中的位置.问重点格子的个数和不同行不同列的棋子个数(如果拿掉一个格子的棋子之后不同行不同列的个数改变则这个格子叫重点格子)代码:#include #include #include #include using namespace std;int n,m,k;int s原创 2015-08-25 13:55:36 · 1232 阅读 · 0 评论 -
hdu4109(拓扑求关键路径)
链接:点击打开链接链接:给出N和M代表编号0~N-1个任务,和M条关系,每条关系由三个字母组成分别为X,Y,Z代表想要完成Y必须先完成X并花费Z个时间,电脑可以同时完成多个任务处理一次花费以单位时间,问完成0~N-1个任务需要多少时间,具体看样例,样例意思是先完成0,1,3然后完成2,4共花费2个单位时间代码:#include #include #include #include原创 2015-08-17 20:12:13 · 1468 阅读 · 0 评论 -
hdu2647(拓扑排序)
链接:点击打开链接题意:每个人的基本工资为888,给出两个人的关系a,b,代表a的工资比b高问满足所有条件的话,最少需要支付多少钱原创 2015-08-17 18:05:27 · 870 阅读 · 0 评论 -
poj3041(最小顶点覆盖)
链接:点击打开链接题意:N*N的矩阵中有一些点代表陨石,每次只能消灭一行或一列连,问需要多少次才能全部消灭代码:#include #include #include #include using namespace std;int n,m;int s[505][505],match[505],vis[505];int dfs(int x){ int i,j;原创 2015-08-24 14:53:03 · 714 阅读 · 0 评论 -
poj3268(dijkstra)
链接:点击打开链接题意:给定一些路线和花费,然后N头牛,每头牛要求按照最短路走到X处,并用最短路在返回,问这些牛中所有路线里最大值是多少代码:#include #include #include #include #define maxx 99999999using namespace std;int n,m,x;int dis[1005][1005],dis1[1005],原创 2015-08-19 18:20:10 · 755 阅读 · 0 评论 -
hdu1874(Dijkstra&&spfa)
链接:点击打开链接题意:求指定起点和指定终点的最短路代码:#include #include #include #include #include #include #include #define INF 0x3f3f3f3fusing namespace std;struct edge{ int to,cost;};typedef pair P;原创 2015-09-17 20:45:35 · 693 阅读 · 0 评论 -
hdu5723(树形dp+最小生成树)
链接:点击打开链接题意:在最小生成树的基础上求出任意两点间距离的期望代码:#include #include #include #include #include #include using namespace std;const long long SIZE=100005;long long n,dp[SIZE],num[SIZE],used[SIZE];struct原创 2016-07-20 11:29:24 · 797 阅读 · 0 评论 -
hdu2768
链接:点击打开链接题意:t组数据,c只猫,d只狗,v个人,v行每行有两个单词,单词的首字母代表动物的种类,第一个单词代表喜欢第二个代表不喜欢,问最大能满足多少个人,具体看样例,第一组数据C1 D1||D1 C1第一个人喜欢Cat1不喜欢Dog1,第二个人喜欢Dog1不喜欢#include #include #include #include using namespace std;s原创 2015-08-27 00:30:00 · 1285 阅读 · 0 评论 -
hdu4081
链接:点击打开链接题意:给一个完全图,每个点有一个权值,求一棵生成树,你可以使其中一条边的权值变成0,求该边两点的权值和除以生成树的边权和的最小值代码:#include #include #include #include #include const double INF=0x3f3f3f3f;using namespace std;double dis[原创 2016-03-22 20:50:04 · 724 阅读 · 1 评论