给一个图,n个点,m个边。有向。一个人要从起点 S 开始走,要去 n 点。把有向图看成无向图自己选路走,最多走k次,可以不走。走完后,在停的那个点的地方,随机走一个有向边。如果没有出边,就不走。这个人要尽快的走到 n 这个点。问走的时间最长是多少? ...
分类:
其他好文 时间:
2021-04-15 12:48:11
阅读次数:
0
再次因为浮点数g++, c++编译器的问题WA,中间还因为reset没有改过来编译器无脑再WA了一次 这道题很适合Kruskal这种将最开始的联通森林,一点点聚合到一起成为一棵联通的最小生成树的想法,只不过,具体到这道题,是要将原先的p个森林,聚合成为s个森林,所以实现就非常简单了 #include ...
分类:
其他好文 时间:
2021-04-14 12:13:20
阅读次数:
0
Kruskal模板题,需要注意,这道题空间限制很严格,第一遍下意识的开了一个记录数组(因为一对节点之间允许多条路经,这里想着进行优化,不过弄巧成拙了,遇到了第一个MLE) #include <iostream> #include <algorithm> #include <queue> #inclu ...
分类:
其他好文 时间:
2021-04-13 11:44:47
阅读次数:
0
原题链接 考察:双端队列bfs 思路: 双端队列常用于距离只有0,1的情况.当距离为0时,更新的点放在队头.当距离为1时,更新的点放在队尾. 判断01距离不用写冗长的if代码.可以参照方向数组预设距离为0的斜杠应该有的方向. 这里当出队的距离才是确定了此点的最短距离. 1 #include <ios ...
题目链接 题解 ?:若图中边权全部为$1$,BFS即可在$O(n+m)$的时间中求出单源最短路。 BFS+剪枝就可以啦(☆▽☆) BFS:对于每个位置,向上下左右4个方向拓展长度$k$,直接搜索。 剪枝:在拓展过程中(当前拓展到位置$(x,y)\(),只要发现一个无法更新的位置\)(tx,ty)$( ...
分类:
其他好文 时间:
2021-04-12 11:40:06
阅读次数:
0
原题链接 考察:线性dp 思路: 这道题就和POJ 1661差不多.f[i][0/1]表示到达第i条线段的0(左),1(右)的最小距离. f[i][0] = min(f[i-1][0]+i-1条线左端点到i条线左端点的最短距离,f[i-1][1]+i-1条线右端点到第i条线左端点的最小值) 同理右端 ...
分类:
其他好文 时间:
2021-04-10 13:20:07
阅读次数:
0
这几天转去尝试做leetcode,意外发现其实leetcode题做做还是挺有收获的,不过感觉OJ做起来收获更大些,这两个还是结合起来做好点。 这道题思路还是比较清晰的,利用bellman ford的思路,不过因为图可能不连通,所以参考kuangbin大佬的思路加了一个“超级源”(因为此题只需要判断负 ...
分类:
其他好文 时间:
2021-04-09 13:20:46
阅读次数:
0
吐槽 最后的BFS和DFS了,做完这个开始搞模拟!!! DFS 注意检查的是新坐标!!! 1 #include<bits/stdc++.h> 2 using namespace std; 3 int sx,sy,ex,ey; 4 int maps[6][6]; 5 int dir[4][2]={ 6 ...
分类:
其他好文 时间:
2021-04-08 13:47:42
阅读次数:
0
#dfs的模板 注意bool判断是否走过这个点并注意回溯的处理。 注意条件判断和边界问题。 //边界判断即剪枝 if(chk()) return; if(over(BianJie)) return; if(bool = false)//未搜索过 bool = true; //赋值或纪录 dfs(n ...
分类:
编程语言 时间:
2021-04-07 11:21:16
阅读次数:
0
求路径中最小值的最大值,应该可以利用网络流的方法解决,不过这道题就利用了dijkstra的方法解决了。 此前POJ 2253利用Floyd方法解决的思路应该也可以应用到这种方法上来 #include <iostream> #include <algorithm> #include <queue> # ...
分类:
其他好文 时间:
2021-04-07 10:29:27
阅读次数:
0