数据只有100,f[i][j]=代表i对j的赞同度,因为具有传递性那么有第三个人k,f[i][j]=max(f[i][j],min(f[i][k],f[k][j])),利用floyd算法传递即可即可 Floyd算法是一种用于计算图中所有节点对之间最短路径的动态规划算法,时间复杂度为O(n³)。它通过逐步更新每个节点间的距离,找到所有可能的中转节点来优化路径长度
#include <bits/stdc++.h>
using namespace std;
#define N 105
#define int long long
现在发的动态都有点赞功能。
如果A发的动态。B点赞了x次。那么B对A的赞同度为x,记为f(B,A),并且f(B,A)和f(A,B)不一定相等。
并且赞同度具有传递性。f(A,B)=max(f(A,B),min(f(A,C),f(C,B))),可以多次传递。
现在有几个人,他们之间有m条点赞记录。
现在有Q次询问,每次询问输入u,v(空格隔开),询问f(u,v)的值。
第一行输入三个整数n,m,Q(1≤n≤100,1≤m≤105,1≤Q≤103)
接下来m行,每行输入u,v(代表u给v点了一次赞,1≤u,v≤n)
接下来Q行,每行输入u,v(1≤u,v≤n)。
对于每一个询问输出一个整数表示答案。
输入
2 7 4
1 1
1 2
1 2
2 1
2 1
2 1
2 2
1 1
1 2
2 1
2 2
输出
2
2
3
2