青蛙的邻居

来源:互联网 发布:bp神经网络算法原理 编辑:程序博客网 时间:2024/06/11 16:58
#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 15 struct vertex{int degree;int index;} v[N];int cmp(const void *a,const void *b){return (((struct vertex*)b)->degree) -( ((struct vertex*)a)->degree);}int main(){int r,k,p,q;int i,j;int d1;int T,n;int Edge[N][N],flag;scanf("%d",&T);while(T--){scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&v[i].degree);v[i].index=i;}memset(Edge,0,sizeof(Edge));flag=1;for(k=0;k<n&&flag;k++){qsort(v+k,n-k,sizeof(struct vertex),cmp);i=v[k].index;d1=v[k].degree;if(d1>n-k-1) flag=0;for(r=1;r<=d1&&flag;r++){j=v[k+r].index;if(v[k+r].degree<=0) flag=0;v[k+r].degree--;Edge[i][j]=Edge[j][i]=1;}}if(flag){puts("YES\n");for(p=0;p<n;p++){for(q=0;q<n;q++)printf("%d ",Edge[p][q]);printf("\n");}puts("\n");}else puts("No");}return 0;}

0 0
原创粉丝点击