NOIP2023 国庆集训 A 组 Day3

T1

思路:Floyd板子

AC代码

#include <bits/stdc++.h>

using namespace std;
const int N = 110;
int n,m,f[N][N],q;
int main(){
	freopen("count.in","r",stdin);
	freopen("count.out","w",stdout);
	memset(f,0x3f,sizeof(f));
	cin >> n >> m;
	for(int i = 1;i <= m;i++){
		int x,y;
		cin >> x >> y;
		f[x][y] = f[y][x] = 1; 
	}
	for(int k = 1;k <= n;k++)
		for(int i = 1;i <= n;i++)
			for(int j = 1;j <= n;j++)
				f[i][j] = min(f[i][j],f[i][k] + f[k][j]);
	cin >> q;
	while(q--){
		int x,y,ans = 2;
		cin >> x >> y;
		for(int i = 1;i <= n;i++) if(f[x][i] + f[i][y] == f[x][y] && i != x && i != y) ans++;
		cout << ans << endl;
	}
	return 0;
} 
posted @ 2023-10-05 11:35  LouYW07  阅读(11)  评论(0)    收藏  举报