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;
}

浙公网安备 33010602011771号