随笔分类 -  图论

摘要:为什么欧拉图要用栈存然后逆着输出41 21 33 44 1考虑这样一组样例,你就可以发现,如果是第一种方式输出为1 2 3 4 1显然是不对的,第二种是对的主要的影响还是在欧拉路和欧拉回路上 阅读全文
posted @ 2020-08-14 17:37 WeiAR 阅读(155) 评论(0) 推荐(0) 编辑
摘要:欧拉回路模板题 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) //by 阅读全文
posted @ 2020-08-06 20:01 WeiAR 阅读(147) 评论(0) 推荐(0) 编辑
摘要:欧拉回路 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) //by war 阅读全文
posted @ 2020-08-06 19:59 WeiAR 阅读(113) 评论(0) 推荐(0) 编辑
摘要:挺有意思的一个建图,夫妻之间男->女,前任之间女到男,然后判断强连通分量 #include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b 阅读全文
posted @ 2020-08-05 10:55 WeiAR 阅读(124) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) //by war //20 阅读全文
posted @ 2020-08-04 23:25 WeiAR 阅读(131) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define inf 2333333333333333 #define N 3000010 #define p(a) putchar(a) #define For(i,a,b) for(int i=a;i<=b;++i) //by war //20 阅读全文
posted @ 2020-08-04 22:10 WeiAR 阅读(168) 评论(0) 推荐(0) 编辑
摘要:最小环模板 floyed http://acm.hdu.edu.cn/showproblem.php?pid=1599 #include <bits/stdc++.h> #define inf 2333333333333 #define N 210 #define p(a) putchar(a) # 阅读全文
posted @ 2020-08-04 21:26 WeiAR 阅读(142) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> #define inf 2333333333333333 #define N 1000010 #define p(a) putchar(a) #define For(i,a,b) for(long long i=a;i<=b;++i) using n 阅读全文
posted @ 2020-06-30 17:29 WeiAR 阅读(253) 评论(0) 推荐(0) 编辑
摘要:网络流 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime> #include<set> #include<map> #include<stack 阅读全文
posted @ 2020-05-19 22:32 WeiAR 阅读(154) 评论(0) 推荐(0) 编辑
摘要:这是一个非常nice的题:1.map去重边,n的话有1e5, 1 const long long base[]={20200422,1000000007,9997,7}; 2 mp[E[i].l*base[1]+E[i].r*base[2]+E[i].v*base[3]]++; 这样来判断这条边的个 阅读全文
posted @ 2020-04-25 05:53 WeiAR 阅读(168) 评论(0) 推荐(0) 编辑
摘要:https://vjudge.net/contest/365635#problem/B 建两层图,因为只能跑一条商业线,可以从正常点向虚拟点建一条单向边For(i,1,m){ in(x);in(y);in(v); push(x,y,v); push(y,x,v); push(x+n,y+n,v); 阅读全文
posted @ 2020-04-07 09:33 WeiAR 阅读(214) 评论(0) 推荐(0) 编辑
摘要:这个点的水可以从其他点来,也可以从0号结点来,所以把0号结点当成超级源点,然后跑最小生成树 #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <c 阅读全文
posted @ 2020-03-27 23:01 WeiAR 阅读(274) 评论(0) 推荐(0) 编辑
摘要:超妙的树形dp一个递归,一个递推f[i]表示i结点往下走的最远距离,g[i]表示往上走的最远距离f[i]=max(f[j])+i->v;g[i]=max(g[pa],f[e[pa]->n]+e[pa]->v)+i->v; #include <iostream> #include <cstdio> # 阅读全文
posted @ 2020-03-27 22:08 WeiAR 阅读(494) 评论(0) 推荐(0) 编辑
摘要:先跑一遍spfa,这样就排除了小于k条边的情况。枚举那k条边中最小的边权,然后让所有的边都减去它,接着跑spfa,然后在加上k*v[i] #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #incl 阅读全文
posted @ 2020-03-25 21:24 WeiAR 阅读(231) 评论(0) 推荐(0) 编辑
摘要:让最大值走得最多就好了,让最大值走最长链的长度,然后把最长链上的点都打上标记,再从所有没有被标记的点里找次长链,让次大值跑这个题我最后一小时写慌了,思路乱了,队友写得很妙,tql #include <iostream> #include <cstdio> #include <queue> #incl 阅读全文
posted @ 2020-03-25 20:28 WeiAR 阅读(382) 评论(0) 推荐(0) 编辑
摘要:Gym - 100712H tarjan无向图缩点+树上直径 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime> #include<set> # 阅读全文
posted @ 2020-03-11 22:59 WeiAR 阅读(181) 评论(0) 推荐(0) 编辑
摘要:http://47.95.147.191/problem/P3规定边数的最短路,跑floyd+矩阵快速幂 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include< 阅读全文
posted @ 2020-02-26 17:36 WeiAR 阅读(144) 评论(0) 推荐(0) 编辑
摘要:Gym100889Lhttps://vjudge.net/problem/341988/origin题目大意:有一个n*n的图,m条双向边(没有重边自环),求从每个节点出发走k条路后到其他所有节点的最短距离和方案数,方案数取模1e9+7输出做法:传递闭包,走k条路,就是做k次矩阵乘法,所谓矩阵乘法就 阅读全文
posted @ 2019-07-31 23:13 WeiAR 阅读(156) 评论(0) 推荐(0) 编辑
摘要:poj3417lca+差分每加入一条新边就会形成一个环,这个环上除了新边都会被覆盖一次,断掉覆盖一次的边再断了覆盖它的新边就能把树分成两部分。对于被覆盖数大于1次的边,就得至少断两条新边,对答案就没有贡献了。对于没有被覆盖的,对答案贡献为新边的数量,覆盖为1的,贡献为1,再否则为0。d[x]表示节点 阅读全文
posted @ 2019-07-24 12:09 WeiAR 阅读(291) 评论(1) 推荐(0) 编辑
摘要:#include #include #include #include #include #include #include #include #include #include #define inf 2147483647 #define ls rtq; void in(long long &x){ long long y=1; char c=g();x=0; whil... 阅读全文
posted @ 2019-07-22 10:25 WeiAR 阅读(149) 评论(0) 推荐(0) 编辑