poj1659 Havel-hakimi定理
2013-04-10 22:21
330 查看
#include <iostream> #include <algorithm> #include <cstring> using namespace std; int T; int N; typedef struct { int degree; int index; }vertex; vertex vertexes[11]; int G[11][11]; bool flag; int cmp(const void *a,const void *b) { return ((vertex*)b)->degree - ((vertex*)a)->degree; } int main() { cin>>T; while(T--) { cin>>N; for(int i = 0; i < N; i++) { cin>>vertexes[i].degree; vertexes[i].index = i; } memset(G,0,sizeof(G)); flag = true; for(int k = 0; k < N && flag; k++) { qsort(vertexes + k, N - k, sizeof(vertex),cmp); int x = vertexes[k].index; int deg = vertexes[k].degree; if(deg > N - k - 1) flag = false; for(int r = 1; r <= deg && flag; r++) { int y = vertexes[k + r].index; if(vertexes[k + r].degree <= 0) { flag = false; } vertexes[k + r].degree --; G[x][y] = G[y][x] = 1; } } if(flag) { cout<<"YES"<<endl; for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { if(j) { cout<<" "; } cout<<G[i][j]; } cout<<endl; } } else { cout<<"NO"<<endl; } if(T) cout<<endl; } return 0; }
相关文章推荐
- POJ 1659 Havel-Hakimi定理
- POJ 1659 Frogs' Neighborhood (Havel-Hakimi定理)
- POJ 1659 Havel-Hakimi定理
- POJ 1659:Frogs' Neighborhood(Havel-Hakimi定理)
- POJ:1659 Frogs' Neighborhood (Havel-Hakimi定理)
- POJ 1659 Frogs' Neighborhood (Havel-Hakimi定理)
- poj 1659 Havel-Hakimi定理(图解序列能否成图)
- poj-1659 Frogs' Neighborhood(判断是否可图,Havel_Hakimi定理)
- POJ 1659 判断是否可图(Havel-Hakimi定理)
- POJ 1659 Frogs' Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
- poj 1659 判断是否能构成图Havel-Hakimi定理
- poj1659 - Frogs' Neighborhood (利用Havel-Hakimi定理判断一个序列是否是可图的)
- poj 1659 Frogs' Neighborhood (Havel-Hakimi定理,判断序列是否可图)
- [poj 1659 ]Frogs\' Neighborhood(Havel-Hakimi定理(判断一个序列是否可图))
- POJ 1659 Frogs' Neighborhood (贪心+Havel-Hakimi定理)
- Havel-Hakimi定理(度序列可图性的判定)&POJ 1659 Frogs' Neighborhood
- POJ-1659-Frogs' Neighborhood (Havel-Hakimi定理)
- POJ1659(Frogs' Neighborhood)(Havel-Hakimi定理运用)
- POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)
- POJ 1659(Havel-Hakimi定理)