随笔分类 -  图论#题解

摘要:( ̄▽ ̄)" #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int INF=10e8; const int MAXN=410; int k,minn; int lc... 阅读全文
posted @ 2016-02-25 12:05 &ATM 阅读(320) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //无向二分图的最小路径覆盖数=顶点总数-最大匹配数/2(最大匹配数=最小点覆盖数) //这里最大匹配数需要除以2,因为每两个相邻的*连一条边,即和是一样的,所以结果多了一倍 #include #include #include #include #include using namespace std; const int MAXN=405; int uN; char G[MAX... 阅读全文
posted @ 2016-02-19 18:06 &ATM 阅读(146) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //凡无向图,求匹配时都要除以2 #include #include #include #include #include using namespace std; const int MAXN=1505; int uN; vector g[MAXN]; int link[MAXN]; bool vis[MAXN]; bool DFS(int u) { for(int i... 阅读全文
posted @ 2016-02-19 18:04 &ATM 阅读(334) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include using namespace std; const int MAXN=505; int uN; //二分图左边的点集 vector g[MAXN]; //存储矩阵数据 int link[MAXN]; //记录右边的点v在左边的点集uN中所匹配的点x的编号 bool vis[... 阅读全文
posted @ 2016-02-19 18:02 &ATM 阅读(177) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include using namespace std; const int INF=10e8; const int MAXN=55; int col,row,k,minn; char str[MAXN][MAXN]; int maze[MAXN][MAXN],dist[MAXN*2][MA... 阅读全文
posted @ 2016-02-18 23:17 &ATM 阅读(230) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //求最短总路径中的最大边长,Prim还需要一个Max变量 #include #include #include #include #include #include using namespace std; const int MAXN=510; const int INF=10e8; int k,minn; int c[MAXN][MAXN],lc[MAXN]; bool vi... 阅读全文
posted @ 2016-02-18 23:16 &ATM 阅读(246) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include using namespace std; const int MAXN=2010; const int INF=10e8; int n,k,minn; char str[MAXN][10]; int c[MAXN][MAXN],lc[MAXN]; bool vis[MAXN]... 阅读全文
posted @ 2016-02-18 23:13 &ATM 阅读(176) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //判环:当入度为0的顶点==0时,则有环(inconsistency) //判序:当入度为0的顶点仅为1时,则能得到有序的拓扑排序,否则无序 //边输入边判断,用continue来做到:得出结果后,对后续的输入不作处理 #include #include #include #include #include using namespace std; const int MAXN=... 阅读全文
posted @ 2016-02-18 00:00 &ATM 阅读(214) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include using namespace std; const int INF=10e8; const int MAXN=1010; int k,minn; int cost[MAXN][MAXN],lowcost[MAXN],lc[MAXN]; bool vis[MAXN]; void Rever... 阅读全文
posted @ 2016-02-17 23:59 &ATM 阅读(173) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include using namespace std; const int INF=10e7; const int MAXN=510; int f,n,m,w,s,e,t; int lc[MAXN],cntNode[MAXN]; bool vis[MAXN]; struct edge {... 阅读全文
posted @ 2016-02-17 23:57 &ATM 阅读(141) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include #include #include using namespace std; const int MAXN=40; int n,m; double Vcur[MAXN],R[MAXN][MAXN]; bool vis[MAXN]; int cntNode[MAXN]; cha... 阅读全文
posted @ 2016-02-17 23:55 &ATM 阅读(303) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include #include using namespace std; const int eps=1e-7; const int MAXN=110; int N,M,S; double V,Vcur[MAXN],R[MAXN][MAXN],C[MAXN][MAXN]; bool vis... 阅读全文
posted @ 2016-02-17 23:54 &ATM 阅读(190) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" 第一种解题方法:dij变形 //无向图最短路,dij的变形(有点像prim) //题意:从起点1到终点n,找出一条路,该条路的最小负重是最大的 #include #include #include #include #include #include #include #include #include #include using namespace std; typedef lo... 阅读全文
posted @ 2016-02-17 23:53 &ATM 阅读(236) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include #include using namespace std; const int INF=30; //infÓÃ15£¬10e8¶¼wa£¬ÓÃ20£¬30²Åac const int MAXN=110; int lc[MAXN][MAXN]; void floyd_out... 阅读全文
posted @ 2016-02-17 23:51 &ATM 阅读(169) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include using namespace std; const int INF=10e8; const int MAXN=110; int k,minn; int c[MAXN][MAXN],lc[MAXN],level[MAXN],X[MAXN]; bool vis[MAXN]; int dij(int n) { ... 阅读全文
posted @ 2016-02-17 23:50 &ATM 阅读(186) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //这道题WA的惨烈,又跪在n,m同时为0输入结束这个点上 //以后用n+m或者n||m,不要再用n&&m判了 #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int MAXN=100010;... 阅读全文
posted @ 2016-02-17 23:46 &ATM 阅读(245) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //不知道为什么,用scanf输入char数组的话,字符获取失效 //于是改用cin>>string,就可以了 //这题字符的处理比较麻烦,输入之后转成数字,用到函数get(char),get_num(string,int) //最后字符的输出是反向输出的,用到函数get_char(int) //这道题也算是到无向图输出欧拉路的模板题,判有无欧拉路用到函数ok() #include ... 阅读全文
posted @ 2016-02-17 23:45 &ATM 阅读(348) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" //这题对序号输出有要求,较小的序号优先输出,所以用到优先队列 //优先队列是优先弹出值最大的,所以最后要反向输出结果,才是正确的output #include #include #include #include #include #include #include #include #include using namespace std; typedef long long l... 阅读全文
posted @ 2016-02-17 23:43 &ATM 阅读(305) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int INF=10e7; const int MAXN=110; int cost[MAXN][MAXN]; int lowcost[MAXN... 阅读全文
posted @ 2016-02-17 23:42 &ATM 阅读(152) 评论(0) 推荐(0)
摘要:( ̄▽ ̄)" #include #include using namespace std; int fa[30010]; void makeSet(int n) //初始化,n个元素,处于单独集合 { for(int i=0;i<n;i++) fa[i]=i; } int findSet(int x) //找到该点的粑粑 { return fa[x]=fa[x]... 阅读全文
posted @ 2016-02-17 23:40 &ATM 阅读(170) 评论(0) 推荐(0)

……