图论
霜雨蓝焰,
这个作者很懒,什么都没留下…
展开
-
CodeForces - 574B(思维+暴力)
CodeForces - 574B思维题最暴力的想法是直接枚举3个点,这样复杂度为o(n^3),对于4000的数据量肯定会挂掉,所以可以改变一下思路先枚举边,每枚举出一条边就得到了两个点,然后枚举剩下那个点找到度数最小值就行。#include<iostream>#include<vector>#include<cstdio>#include<c...原创 2019-10-16 17:31:37 · 181 阅读 · 0 评论 -
HDU-128 棋盘游戏(二分图匹配)
HDU-128#include<bits/stdc++.h>#define maxn 210using namespace std;int q[maxn];int p[maxn][maxn];bool vis[maxn];int n,m,k;bool dfs(int x){ for(int i=1;i<=m;i++){ if(p[x][i]&&...原创 2019-10-13 13:54:51 · 191 阅读 · 0 评论 -
二分图判定
所谓二分图,其最大的特点在于,可以将图里的顶点分为两个集合,且集合内的点没有直接关联(之间没有边相连)。判断二分图的常见方法是染色法:用两种颜色,对所有顶点逐个染色,且相邻顶点染不同的颜色,如果发现相邻顶点染了同一种颜色,就认为此图不为二分图。 当所有顶点都被染色,且没有发现同色的相邻顶点,就退出。bool dfs(int v, int c){ color[v] = c; //为...原创 2019-10-12 22:53:54 · 280 阅读 · 0 评论 -
图论-最短路问题(Dijkstra算法)
最短路问题单源最短路1.Dijkstra算法POJ2387Dijkstra模板题主要注意存图方式,其实这个题数据量不大用邻接矩阵完全可以存下,我这里使用vector存图主要是保险(没看见数据量这么小,,)。然后这个是个无向图需要判断重边(我第一次就是在这里wa的,,)对于重复的边应该取最小的边权。这种裸题主要考察细节(我就wa在这上边)。对于Dijkstra算法本身不难,主要就是一...原创 2019-07-29 20:52:02 · 515 阅读 · 0 评论 -
图论-最小生成树(Kruskal算法)
Kruskal算法POJ1287所谓克鲁斯卡尔算法就是先将边按边权从小到大排序,然后贪心选取在算法运行时应注意避免成环(避圈法)采用并查集来完成边的合并同时避免成环#include<iostream>#include<cstring>#include<queue> #include<algorithm>#define max 500...原创 2019-07-29 21:08:22 · 206 阅读 · 0 评论 -
图论-拓扑排序
拓扑排序HDU1285#include<bits/stdc++.h>using namespace std;const int maxn=600;int n;int main(){ int a,b; int m; while(cin>>n>>m){ vector<int>p[maxn]; int in[maxn]; ...原创 2019-07-30 10:45:10 · 99 阅读 · 0 评论 -
图论-最短路问题(SPFA)
SPFA算法迪杰斯特拉算法不能解决具有负边权的问题所以就需要SPFA算法来判断负环(当有负环的时候肯定是走负环可以达到最小,,,,)POJ2240因为汇率可以大于或小于1,所以就可以把汇率大于1的交换方法看作负边权,只需要使用SPFA算法使初始点的值大于初始值就好。#include<stdio.h>#include<string.h>#include<q...原创 2019-08-03 16:18:24 · 189 阅读 · 0 评论 -
图论-最小生成树(prim算法)
prim算法克鲁斯卡尔算法的核心是对边贪心选取,前提是要先对边进行排序,当边的数量特别大的话依然会出问题,所以当图为稠密图的时候应该使用prim算法。prim算法实质是迪杰斯特拉算法通过更新源点到各点的最小距离来得出最小的边权和。POJ1789#include <cstdio>#include <cstring>#define INF 1<<27...原创 2019-08-03 17:11:26 · 228 阅读 · 0 评论 -
图论-最大生成树的最小边
POJ1797#include<cstdio>#include<vector>#define maxn 2000#define inf 1<<29using namespace std;struct h{ int e; int v;};vector<h>a[maxn];bool vis[maxn];int d[maxn];i...原创 2019-09-02 22:50:00 · 207 阅读 · 0 评论