思路: floyd 求出每个bead 与其它bead的关系 1表示比其它的重,-1表示轻于其它的。
如果它重于其它的个数,或轻于其它的个数超过一半 那它就不可能是中间的
ps:第一道自己理解的floyd 题,开心 嘻嘻!
#include <stdio.h>
#include <string.h>
#define M 105
int main ()
{
t,n,m,i,j,k;
map[M][M];
("%d",&t);
--)
scanf ("%d%d",&n,&m);
memset (map,0,sizeof(map));
while (m --)
{
scanf ("%d%d",&i,&j);
map[i][j] = 1;
map[j][i] = -1;
}
for (k = 1;k <= n;k ++)
for (i = 1;i <= n;i ++)
for (j = 1;j <= n;j ++)
{
if (map[i][k] == 1&&map[k][j] ==
1)
j,indicate i is heavier j
map[i][j] = 1;
if (map[i][k] == -1&&map[k][j] ==
-1)//·´Ö®£¬Í¬Àí
map[i][j] = -1;
}
int count = 0;