7-7 六度空间

7-7 六度空间_第1张图片

7-7 六度空间_第2张图片 

输入样例:

10 9
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

输出样例:

1: 70.00%
2: 80.00%
3: 90.00%
4: 100.00%
5: 100.00%
6: 100.00%
7: 100.00%
8: 90.00%
9: 80.00%
10: 70.00%

分析:

对每个点 bfs 前六层,为了使得 d 数组除了能表示距离,还能表示是否visted,所以d 从1 开始 。

用vectore[N]; 邻接表,对一个点的bfs=O(m) ,总时间复杂度:O(n*m);

代码:

#include
#include
#include
#include
using namespace std;
const int N=1010;
vectore[N];
int d[1010]; 
queueq;
int ans;
void bfs(){
	while(q.size()){
		int u=q.front(); q.pop();
		for(int v:e[u]){
			if(d[v]) continue;
			q.push(v); d[v]=d[u]+1;
			if(d[v]>7) return ;
			ans++;
		}
	}
}
int main(){
	int n,m; cin>>n>>m;
	for(int i=0;i

你可能感兴趣的:(算法,数据结构)