zoukankan      html  css  js  c++  java
  • Havel-Hakimi定理 POJ1659

    对于图的所有顶点,计算出每个顶点的度,度序列。给定一个序列判断序列是否可图。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int map[15][15];
    struct vertext {
    	int d;
    	int num;
    }x[15];
    bool cmp(vertext a,vertext b) {
    	return b.d<a.d;
    }
    int main() {
    	int t,n;
    	scanf("%d",&t);
    	while(t--) {
    		scanf("%d",&n);
    		memset(map,0,sizeof map);
    		for(int i=0;i<n;i++) {
    			scanf("%d",&x[i].d);
    			x[i].num=i;
    		}
    		sort(x,x+n,cmp);
    		int flag=0;
    		for(int i=0;i<n;i++) {
    			sort(x+i,x+n,cmp);
    			if(x[i].d>n-i-1) {
    				flag=1;break;
    			}
    			for(int j=i+1;j<=i+x[i].d;j++) {
    				map[x[i].num][x[j].num]=map[x[j].num][x[i].num]=1;
    				x[j].d--;
    				if(x[j].d<0) {
    					flag=1;break;
    				}
    			}
    			if(flag==1) break;
    			x[i].d=0;
    		}
    		if(x[n-1].d!=0) flag=1;
    		if(flag==0) {
    			printf("YES
    ");
    			for(int i=0;i<n;i++) {
    				for(int j=0;j<n;j++) {
    					printf("%d",map[i][j]);
    					if(j!=n-1) printf(" ");
    				}
    				printf("
    ");
    			}	
    		}
    		else printf("NO
    ");
    		if(t!=0) printf("
    ");
    	}
    	return 0;
    } 
    
  • 相关阅读:
    java实现同步的两种方式
    JAVA线程概念
    XML基础总结
    JAVA使用和操作properties文件
    JAVA序列化基础知识
    easyui 在编辑状态下,动态修改其他列值。
    Activiti初学问题,求解
    java web--DOM
    java web(1)
    Java WEB
  • 原文地址:https://www.cnblogs.com/LinesYao/p/5672157.html
Copyright © 2011-2022 走看看