zoj 3710 Friends

#include<stdio.h>
#include<string.h>
int s[110][110],h;
int main(int argc, char* argv[])
{

    
    int t,i,n,k,m,x,y,count,sum,j;
       scanf("%d",&t);
        
        while(t--)
        {
        
            scanf("%d%d%d",&n,&m,&h);
            memset(s,0,sizeof(s));/*初始化矩阵所有的值为0*/
            for(i=0;i<m;i++)/*初始化矩阵为有效值*/
            {
                scanf("%d%d",&x,&y);
                s[x][y]=1;
                s[y][x]=1;
            }
            sum=0;
            for(i=0;i<n;i++)/*第i行*/
            {
                
                for(j=i+1;j<n;j++)/*第i+1行*/
                {
                    count=0;
                    if(s[i][j]==1)
                        continue;

                    for(k=0;k<n;k++)/*找每一列,找到两行共同的列*/
                        if(s[i][k]==1&&s[j][k]==1)
                                count++;

                        if(count>=h)/*如果有超过一个共同的好友就可以更新矩阵了*/
                        {
                            sum++;/*新关系的数量*/
                            s[i][j]=1;
                            s[j][i]=1;
                            i=-1;/*重置i,重新遍历矩阵*/
                            break;
                        }
                }
            }

            printf("%d\n",sum);
        }

    return 0;
}

 

posted @ 2014-03-10 22:11  keyboard3  阅读(137)  评论(0编辑  收藏  举报