http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3708
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int T,i,j,lineSum;
int N,M;
int x[505],y[505];
int lineL [505][505] ; scanf("%d",&T);
for(i = 0 ; i < T ;i++){
lineSum = 0;
scanf("%d %d",&N,&M); memset (lineL,0,sizeof(lineL));
memset (lineL,0,sizeof(x));
memset (lineL,0,sizeof(y)); for(j = 0 ; j < M ;j++){
scanf("%d",&x[j]);
}
for(j = 0 ; j < M ;j++){
scanf("%d",&y[j]);
}
for(j = 0 ; j < M ;j++){
if(lineL[x[j]][y[j]] == 0 && lineL[y[j]][x[j]] == 0){ lineSum ++;
lineL[x[j]][y[j]]=lineL[y[j]][x[j]]=1; }
}
printf("%.3f\n",lineSum/(N*1.0));
} return 0;
}