
图论
会飞的蟋蟀
学习中!!
展开
-
USACO 2.4.3 牛的旅行 Cow Tours
题解图论入门级的题目。算最短路径,处理需要点技巧。代码很巧妙,琢磨一下啊。Code#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#inc原创 2018-09-05 11:59:54 · 370 阅读 · 0 评论 -
USACO 2.4.4 回家 Bessie Come Home
题解最短路径题,以Z为起点,用Dijkstra算法秒杀。注意会有重复边要取最小。Code// head files excludedusing namespace std;const int INF = 1e8;int n,m;int dis[53][53];int sd[52];bool vis[52];void init(){ for(int i=0;...原创 2018-09-05 16:47:05 · 293 阅读 · 0 评论 -
USACO 3.1.1 最短网络 Agri-Net 【模版】
题解最小生成树裸题。Kruskal方法解答,用并查集对节点检查合并。代码很简练。Code// head files excludedusing namespace std;int n,m,k;struct edge{ int x,y,v;} cot[20000];int f[200];bool cmp(edge &a, edge &b){...原创 2018-09-10 15:01:22 · 272 阅读 · 0 评论 -
LeetCode 207. Course Schedule
题解这题就是拓扑排序,也可以dfs查环,思路简单,注意下如何用数据结构表示。可参考的英文题解含DFS/BFSCodeclass Solution {public: bool canFinish(int n, vector<pair<int, int>>& pres) { vector<unordered_set<int...原创 2018-10-02 15:26:15 · 165 阅读 · 0 评论 -
LeetCode 684. Redundant Connection [模版]
题解这题就是并查集。然后我想总结下并查集的写法。主要实现两块,union & find。设p[ i ]代表 i 的父类。find() 主要就是查找i的父类集合// 无修改int find_1(int i){ while(p[i]!=i) i=p[i]; return i;}// 压缩路径int find_2(int i){ if(p[i]!=i) p[i...原创 2018-10-11 11:43:06 · 257 阅读 · 0 评论 -
LeetCode 675. Cut Off Trees for Golf Event
题解排序+BFS最短路。思路比较直接吧,按树高顺序依次求之间的最短路径。注意这次BFS的写法不太一样,不用开等大小矩阵存最短长度。Codeint dx[4]={0,1,0,-1};int dy[4]={1,0,-1,0};int cutOffTree(vector<vector<int>>& forest) { if(forest.e...原创 2018-10-27 10:21:46 · 173 阅读 · 0 评论 -
LeetCode 787. Cheapest Flights Within K Stops
题解这题看似最短路径,但是暗藏变化。首先想到dfs,搜索到所有由始至终的可行路径,记录最小cost即可。但是这题编程实现有很多小花招,怎么剪枝,一个是k(步进的次数),二是cost,都可以用来减小搜索空间。再者,就是贝尔福特算法,非常适合这题,因为此题有个k的限制。当然应用的时候需要修改一点,原本是重复|V|-1次的,此时只要k+1次了。值得注意的是,在每一轮更新dis[]数组的时候...原创 2018-11-03 13:01:27 · 304 阅读 · 0 评论