
ACM_图论、搜索
我爱吃狮子头
有人在这虚度,有人在这成长
展开
-
平面图上的欧拉公式
V-E+F = 2,V、E、F表示顶点数、边数、面数。原创 2018-07-25 16:07:28 · 6890 阅读 · 2 评论 -
DFS(深度优先搜索)
DFS(Depth first search)适用范围:不重不漏地枚举到目标状态的每一条路径。算法过程:对一个当前的合法状态A,对其所有的子状态(子节点),按顺序选择一种进行搜索,递归这一过程,直至到达叶子节点或当前状态不合法,则回溯至父节点,对另一种子状态进行搜索。伪代码:void dfs(状态A){ if(A不合法) return;//回溯 if(A为目标状态) 输出或...原创 2019-03-01 17:57:53 · 340 阅读 · 0 评论 -
CodeForces_Tree Cutting (dfs)
题目链接:https://codeforces.com/contest/1118/problem/F1#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=3e5+2;int a[maxn];int dp[maxn][3];int sum1,sum2,n;vec...原创 2019-02-27 23:40:40 · 157 阅读 · 0 评论 -
dfs——全排列问题
#include <bits/stdc++.h>using namespace std;typedef long long ll;int n;char a[15];//原数组 char re[15];//箱子内容 int vis[15]; //标记箱子 //假设有n个字符要排列,把他们依次放到n个箱子中//先要检查箱子是否为空,手中还有什么字符,把他们放进并标记。...原创 2018-09-30 10:27:30 · 1113 阅读 · 0 评论 -
dfs——迷宫
https://www.cnblogs.com/OctoptusLian/p/7429645.html//https://www.cnblogs.com/OctoptusLian/p/7429645.html#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=101...原创 2018-09-30 10:08:44 · 688 阅读 · 0 评论 -
最长路径
#include<cstdio>#include<cstring>#include<iostream>#include<vector>#define maxn 23388using namespace std;int n, dis = -1, v, flag[maxn];typedef pair<int,int> pii;...原创 2018-08-29 22:42:38 · 1432 阅读 · 0 评论 -
Kruskal、Prim
引用了算法导论--最小生成树(Kruskal和Prim算法)稠密用Prim,稀疏用Kruskal1.Kruskal此算法可以称为“加边法”,初始最小生成树边数为0,每迭代一次就选择一条满足条件的最小代价边,加入到最小生成树的边集合里。 1. 把图中的所有边按代价从小到大排序; 2. 把图中的n个顶点看成独立的n棵树组成的森林; 3. 按权值从小到大选择边,所选的边连接的两个顶点u...原创 2018-08-26 22:38:30 · 694 阅读 · 0 评论 -
Dijkstra、Bellman-ford
1.Dijkstra邻接矩阵实现(时间少)时间复杂度 O(n²) 空间复杂度 O(n²) 不能出现负权边。#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <cst...原创 2018-08-26 18:28:26 · 687 阅读 · 0 评论 -
Floyd-Warshall
用来算多源间最短距离和路径。 时间复杂度 O(n^3) 空间复杂度 O(n^2) 稠密图效果最佳,边权可正可负#include <bits/stdc++.h>typedef long long LL;const int MAXN = 100;const int INF = 0x3f3f3f3f;using namespace std;int path[MA...原创 2018-08-26 12:33:53 · 1010 阅读 · 0 评论 -
深搜DFS_桃花(求图的最长路径)
例题链接:https://www.nowcoder.com/acm/contest/136/C 题目描述 桃花一簇开无主,可爱深红映浅红。 ——《题百叶桃花》 桃花长在桃树上,树的每个节点有一个桃花,调皮的HtBest想摘尽可能多的桃花。HtBest有一个魔法棒,摘到树上任意一条链上的所有桃...原创 2018-08-19 12:20:41 · 2173 阅读 · 0 评论 -
最小生成树_挖沟(求连通全图的最短路径)
例题链接:https://www.nowcoder.com/acm/contest/136/H 题目描述 胡队长带领HA实验的战士们玩真人CS,真人CS的地图由一些据点组成,现在胡队长已经占领了n个据点,为了方便,将他们编号为1-n,为了隐蔽,胡队长命令战士们在每个据点出挖一个坑,让战士们躲在坑里。由于需要在任意两个点之间传递信息,两个坑之间必须挖出至少一条通路,而挖沟是一件很麻...原创 2018-08-19 11:41:00 · 935 阅读 · 0 评论 -
八皇后 Heuristic Search - 8 Queens Problem
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_13_A Heuristic Search - 8 Queens Problem Time Limit : 1 sec, Memory Limit : 131072 KB8 Queens Problem The goal of 8 Queens Probl...原创 2018-02-21 09:56:33 · 1005 阅读 · 0 评论 -
BFS(广度优先搜索)
BFS(Breadth first search)适用范围:找到一条最快到达目标状态的路径。算法过程:将当前搜索到的状态A的每一个子状态压入队列,检查队列是否为空,如果不为空,弹出队首元素,并且以这个状态为根节点继续进行广搜,直至整个队列为空。伪代码:初始化队列Q Q.push(head) 标记head为已访问 while(!Q.empty()){ temp=Q.fron...原创 2019-03-01 18:22:17 · 441 阅读 · 0 评论