图论
文章平均质量分 79
Gipsyu
这个作者很懒,什么都没留下…
展开
-
HDU2586
http://acm.hdu.edu.cn/showproblem.php?pid=2586题意给一棵树多次询问树上距离最近公共祖先的模板题第一次写tarjan算法名字读的怪怪的不过这算法确实厉害o(n+m)的时间复杂度十分的棒AC代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const in...原创 2018-03-29 18:08:51 · 458 阅读 · 0 评论 -
BZOJ3732 LCA
倍增同时维护链上最大#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int head[N],Next[N],ver[N],edge[N],mf[N][20],f[N][20],d[N],fa[N],tot,t;queue<int> q;struct P{ int x,y,z;}A...原创 2018-12-12 14:42:57 · 161 阅读 · 0 评论 -
BZOJ3631 LCA
根本不用树链剖分直接类似数组加个标记dfs就行#include<bits/stdc++.h>using namespace std;const int N=3e5+10;int A[N],ver[N*2],Next[N*2],head[N],d[N],DP[N],f[N][20],t,tot;queue<int> q;void add(int x,int...原创 2018-12-10 19:05:34 · 121 阅读 · 0 评论 -
BZOJ3144 DINIC
神奇的建图!!#include<bits/stdc++.h>using namespace std;const int N=45*45*45+10,M=300010,inf=1<<30;const int dx[]={1,0,-1,0,0};const int dy[]={0,-1,0,1,0};int P,Q,R,D,Next[M],d[N],head[N...原创 2019-02-08 14:53:17 · 146 阅读 · 0 评论 -
BZOJ3436 差分约束
#include<bits/stdc++.h>using namespace std;const int N=2e4+10;int Next[N],head[N],ver[N],edge[N],d[N],tot,v[N];void add(int x,int y,int z){ ver[++tot]=y,Next[tot]=head[x],head[x]=tot,edge[...原创 2019-02-09 13:28:56 · 188 阅读 · 0 评论 -
BZOJ3534 矩阵树
#include<bits/stdc++.h>using namespace std; const int N=55;double a[N][N],A[N][N];void gauss(int n){ for(int i=1;i<=n;++i){ for(int j=i;j<=n;++j){ if(fabs(a[j][i])>1e-8){ ...原创 2019-02-09 16:39:09 · 203 阅读 · 0 评论 -
BZOJ4894 矩阵外向树&&辗转相除消元
外向树需要把度数矩阵改成入度因为取模,高斯消元要在整数下进行有一种辗转相除消元法,可以不用求逆元,而且非常好写,复杂度最后求代数余子式的时候去掉的应该是根的那一行和那一列#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll N=310,M=1000000007;ll a...原创 2019-02-10 11:26:00 · 404 阅读 · 0 评论 -
BZOJ3438 最小割
#include<bits/stdc++.h>using namespace std;const int N=5e6+10,M=5e6+10,inf=1<<30;int ans;struct DINIC{ int Next[M],d[N],head[N],ver[M],edge[M],tot,S,T; queue<int> q; ...原创 2019-02-22 20:39:13 · 200 阅读 · 0 评论 -
LuoGu2756 DINIC
#include<bits/stdc++.h>using namespace std;const int N=5e6+10,M=5e6+10,inf=1<<30;int n,m;struct DINIC{ int Next[M],d[N],head[N],ver[M],edge[M],tot,S,T; queue<int> q; ...原创 2019-02-22 21:13:14 · 130 阅读 · 0 评论 -
BZOJ1443 DINIC
水#include<bits/stdc++.h>using namespace std;const int N=2e4+10,M=2e4+10,inf=1<<30;int ans,A[N],B[N];struct DINIC{ int Next[M],d[N],head[N],ver[M],edge[M],tot,S,T; queue<i...原创 2019-02-22 21:41:16 · 164 阅读 · 0 评论 -
JSK A1542 The Maximum Unreachable Node Set
最大独立点集=点数-最大匹配=点数-最小点覆盖=最小边覆盖先floyed传递闭包然后匈牙利算法#include<bits/stdc++.h>using namespace std;const int N=2e2+10;int G[N][N],vis[N],match[N],n;bool dfs(int x){ for(int i=1;i<=n;++i...原创 2019-06-06 23:24:08 · 186 阅读 · 0 评论 -
HDU5991 DFS for Cliques
这个算法复杂度有问题但能过标准解法应该用set去维护每次o(n)更新#include<bits/stdc++.h>using namespace std;const int N=110;int G[N][N],res,n;void dfs(int x){ if(x>=res)return; int a=0,b=0,c=0; for(int...原创 2019-06-02 13:06:10 · 219 阅读 · 0 评论 -
HDU 6430 DSU
竟然A了 23333,复杂度真的是玄学最大复杂度n根号loglog,但其实复杂度远没这么大,后来一想A了正常首先,复杂度计算的是错的,没有根号,n即是最大约数的个数第二,考虑到轻链一开始是很小的,而1e5以内的约数个数最多的数只有60+个约数第三,轻链在向重链合并的时候,很多因数是被重复的,计算量大大减小,或者换一种理解方式,很难打满1e5个因数。以后感觉树上做不了的题,都拿D...原创 2018-10-25 20:54:40 · 206 阅读 · 0 评论 -
CodeForces 600E DSU算法
DSU:基于轻重链的树上启发式合并,一个巨优美的暴力,复杂度log级别的,原因的一颗树的重链数是log的,每个点最多向每个重链更新一次。附一个链接:http://codeforces.com/blog/entry/44351这个算法的思想就是,一个有规划的暴力,除去了普通n^2暴力的许多多次计算的部分,每一个重边开一个map暴力记录,让一棵数的轻边始终向重边更新。#include&l...原创 2018-10-25 17:04:12 · 539 阅读 · 0 评论 -
HDU 3966 Heavy Light Decomposition
https://vjudge.net/problem/HDU-3966The bare problem of the heavy light decompositionBut it is my first HLDAn amazing DataStructureCode of AC:#include<bits/stdc++.h>using namespace std;const in...原创 2018-05-28 22:11:38 · 260 阅读 · 0 评论 -
POJ1330
https://vjudge.net/problem/POJ-1330最简单的LCA模板题刚学了tarjan练习一下#include<iostream>using namespace std;typedef long long ll;const int N=2e4+10;int Next[N],head[N],ver[N],fa[N],tot=0,v[N],a,b,ans,A[...原创 2018-03-30 11:57:20 · 532 阅读 · 0 评论 -
BZOJ1787 LCA
LCA的一道比较有意思的题目的是找到三个点的最近点LCA即可解决分别找到每两个边的lca其中肯定有两个相同的那么另一个就是所求点哈哈哈20秒的题跑了17秒哈哈我发现了一道两百秒的题一会写个死循环测评机三分钟被我独占美滋滋哈哈我好坏开玩笑的我才不干那种没道德的事哈哈tarjan算法真的好有意思AC代码:#include<bits/stdc++.h>using namespace std...原创 2018-03-30 17:07:50 · 265 阅读 · 0 评论 -
HDU6115
https://vjudge.net/problem/HDU-6115题意感觉很麻烦感觉是一个加强版的LCA模板题tarjan算法确实厉害根本不用什么倍增,树的重心优化不开读入挂用cincout每次超长时间初始化都可以在一个限时10秒的题2秒跑完实在是厉害啊越来越喜欢tarjan了hiahiahia#include<bits/stdc++.h>using namespace std;...原创 2018-03-30 12:35:24 · 260 阅读 · 0 评论 -
BZOJ1601
http://www.lydsy.com/JudgeOnline/problem.php?id=1601题意:给你n个点,要求把每个点上都连上水,其中有两种方式一种是将点和有水的点连起来另一种是在这个点上建水库两种方式在每个点上各自有不同的花费求将所有店连通上水的最小费用这道题其实是最小生成树只不过饶了一点弯其实我们完全将水库当成一个虚拟的点每次建水库的费用其实就是将这个点向水库连上一个边点之间的...原创 2018-03-26 22:08:41 · 240 阅读 · 0 评论 -
HDU 2063 匈牙利算法
https://vjudge.net/problem/HDU-2063二分图找最大匹配入门#include<bits/stdc++.h>using namespace std;const int N=2e3+10;int head[N],ver[N],Next[N],v[N],match[N];int tot=0;void add(int x,int y){ ver[...原创 2018-05-09 15:46:39 · 130 阅读 · 0 评论 -
BZOJ1854 匈牙利算法
https://www.lydsy.com/JudgeOnline/problem.php?id=1854刚学的匈牙利算法由于每个点最多连两条边所以复杂度是线性的上代码:#include<bits/stdc++.h>using namespace std;const int N=2e6+10;int ver[N],head[N],Next[N],match[N],v[N];in...原创 2018-05-09 16:32:35 · 200 阅读 · 0 评论 -
HDU3549 NetWork Flow Problem
https://vjudge.net/problem/HDU-3549The rudiments of Network ProblemI use the algorithm of Edomonds-KarpYou should pay attention to the double edgeAnd to improve my English powerI will write in English...原创 2018-05-09 20:38:35 · 263 阅读 · 0 评论 -
HDU 3729 Hungarian algorithm
http://acm.hdu.edu.cn/showproblem.php?pid=3729Obviously,the maxmun matching of bipartite graphthen I use the algorithm of Hungarian algorithmif you memset before every dfsthe time will 900+msbut if yo...原创 2018-05-10 20:05:00 · 194 阅读 · 0 评论 -
BZOJ 1059 Hungarian Algorithm
https://www.lydsy.com/JudgeOnline/problem.php?id=1059The provincial competition we didn't solve this problemIt's a pityThe problem is just the maximum matching of bipartite graphThe Wildcow mentor sai...原创 2018-05-10 20:50:46 · 138 阅读 · 0 评论 -
POJ 1325 Kőnig's Theorem
http://poj.org/problem?id=1325The minimum vertex cover bipartite graphAccording to the Kőnig's theoremThe problem is same原创 2018-05-15 14:31:25 · 221 阅读 · 0 评论 -
POJ 2226 Kőnig's Theorem
http://poj.org/problem?id=2226The problem is same as the minimum vertex cover bipartite graph problema cell is covered by the row or the column or bothso you can build the graph by the continuous row ...原创 2018-05-15 15:22:39 · 246 阅读 · 0 评论 -
2018 ACM NanJing Magic Potion
匈牙利算法#include<bits/stdc++.h>using namespace std;const int N=1e5;int head[N],Next[N],ver[N],v[N],match[N];int tot=0,ans=0;void add(int x,int y){ ver[++tot]=y;Next[tot]=head[x];head[x]...原创 2019-07-14 12:15:32 · 178 阅读 · 0 评论