P2864 [USACO06JAN]树林The Grove(bfs) 题面 题目描述 The pasture contains a small, contiguous grove of trees that has no 'holes' in the middle of the it. Bessie wonders: how far is it to walk around that grove and get back to my starting position? She's just s…
P2864 [USACO06JAN]树林The Grove 神奇的射线法+bfs 裸的bfs很难写....... 那么我们找一个最外围障碍点,向图的外边引一条虚拟射线. 蓝后bfs时经过这条射线奇数次最后又回到起点的,就是满足条件的路径 最后来个bfs+记忆化 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; #define N…
树木(grove)Time Limit: 1Sec Memory Limit: 64 MB[Description]牧场里有一片树林,林子里没有坑.贝茜很想知道,最少需要多少步能围绕树林走一圈,最后回到起点.她能上下左右走,也能走对角线格子.牧场被分成R 行C 列(1≤R≤50,1≤C≤50).下面是一张样例的地图,其中“.”表示贝茜可以走的空地, “X”表示树林, “*”表示起点.而贝茜走的最近的路已经特别地用“+”表示出来. ...+.....+X+...+XXX+...+XXX+..+X.…
题目链接 https://www.luogu.org/problemnew/show/P1032 分析 这题本来很裸的一个BFS,发现其中的字符串操作好烦啊.然后就翻大佬题解发现用STL中的string居然变得这么简洁!!! 各种string操作请看另一位大佬博客,写得很全啊: https://www.cnblogs.com/rvalue/p/7327293.html#commentform 其实我们这题只用到两个相关函数:\(S.find(string,pos)\)和\(S.substr()\…
意甲冠军:给定一个N*M图.,间'X'代表树木(树木必须汇集到森林,非分离),然后,'.'它代表的空间.'*'它代表的起点.现在它需要从起点.一圈,最后回到起点,所经过最少点数. 题目中给的'+'就是当中一种最短路径. 题解:随便找一条经过森林且不经过起点的直线,可证路径一定会穿过这条直线.那么就在这条直线上枚举一个点,做两遍BFS,求其从分别直线两側出发到起点的最短距离. 在这里说一个推断边界的简单方法,就是先给图里每一个点打上标记.详见代码里'in'数组.in值为0的自然就不再里面,而没有必…
思路:如果要围绕一圈,必须经过一条竖线上的一点,把竖线左端封住,bfs一次,枚举点,再把竖线右端封住,再bfs回起点. #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn=5e1+9,inf=1e9; char a[maxn][maxn],now[maxn][maxn]; int dist[maxn][maxn],d[maxn][maxn…
题目链接:https://www.luogu.org/problemnew/show/P2860 考虑在无向图上缩点. 运用到边双.桥的知识. 缩点后统计度为1的点. 度为1是有一条路径,度为2是有两条路径. #include <stack> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; cons…
题目链接:https://www.luogu.org/problemnew/show/P2863 求强连通分量大小>自己单个点的 #include <stack> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 100000 + 10; struct edge…
题目传送门 这个题还是个缩点的板子题...... 答案就是size大于1的强连通分量的个数 加一个size来统计就好了 #include <iostream> #include <cstdlib> #include <cstdio> using namespace std; const int N=1e5+5; const int M=5e5+5; struct edge{ int to,next; }e[M]; int n,m,dfn[N],low[N],cnt,he…
题目描述 In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1-F) to another field, Bessie and the rest of the herd are forced to cross near the Tree of Rotten Apples. The cows are now tired of often being forced to ta…