现在的位置: 首页 > 综合 > 正文

poj 1975 Median Weight Bead(floy…

2018年03月17日 ⁄ 综合 ⁄ 共 825字 ⁄ 字号 评论关闭
题意:有n个bead 给出m种轻重关系 求有多少人bead肯定不可能是 in the median weight

思路: floyd 求出每个bead 与其它bead的关系 1表示比其它的重,-1表示轻于其它的。
如果它重于其它的个数,或轻于其它的个数超过一半 那它就不可能是中间的

ps:第一道自己理解的floyd 题,开心 嘻嘻!

#include <stdio.h>
#include <string.h>
#define M 105

int main ()
{
    int
t,n,m,i,j,k;
    int
map[M][M];
    scanf
("%d",&t);
    while (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)  //if i is heavier k and k is heavier
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;
    

抱歉!评论已关闭.