poj 1659 Frogs' Neighborhood(出入度、可图定理)
2013-10-03 10:48
441 查看
题意:我们常根据无向边来计算每个节点的度,现在反过来了,已知每个节点的度,问是否可图,若可图,输出一种情况。
分析:这是一道定理题,只要知道可图定理,就是so easy了
可图定理:对每个节点的度从大到小排序,取第一个(最大)的度的节点,依次与其后(度)的节点连边,每连一条边,对应的度减1。然后重新排序,重复以上步骤,若度出现负值,则不可图。(若n个点中,某点的度>=n,那么也是不可能的)
View Code
分析:这是一道定理题,只要知道可图定理,就是so easy了
可图定理:对每个节点的度从大到小排序,取第一个(最大)的度的节点,依次与其后(度)的节点连边,每连一条边,对应的度减1。然后重新排序,重复以上步骤,若度出现负值,则不可图。(若n个点中,某点的度>=n,那么也是不可能的)
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN=22; int a[MAXN],r[MAXN]; int mp[MAXN][MAXN]; void init(int n) { memset(a,0,sizeof(a)); memset(mp,0,sizeof(mp)); for(int i=0;i<n;i++) r[i]=i; } int cmp(int i,int j) { return a[i]>a[j]; } int check(int n) { for(int i=0;i<n;i++) { for(int j=1;j<1+a[r[0]];j++) { mp[r[0]][r[j]]=mp[r[j]][r[0]]=1; a[r[j]]--; if(a[r[j]]<0) return -1; } a[r[0]]=0; sort(r,r+n,cmp); } return 1; } void print(int n) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) if(j==0) printf("%d",mp[i][j]); else printf(" %d",mp[i][j]); printf("\n"); } } int main() { int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n); init(n); for(int i=0;i<n;i++) scanf("%d",&a[i]); sort(r,r+n,cmp); if(check(n)==-1) printf("NO\n"); else { printf("YES\n"); print(n); } printf("\n"); } return 0; }
View Code
相关文章推荐
- POJ 1659 Frogs' Neighborhood (贪心)
- poj 1659【Frogs' Neighborhood】
- Poj 1659 Frogs' Neighborhood 图的可图性判断
- poj 1659 Frogs' Neighborhood
- POJ 1659 Frogs' Neighborhood
- POJ 1659 Frogs' Neighborhood
- POJ 1659 Frogs' Neighborhood (Havel-Hakimi 定理)图论
- POJ 1659 Frogs' Neighborhood(DFS)
- poj 1659 Frogs' Neighborhood(贪心Havel-Hakimi可构造简单图定理)
- poj-1659-Frogs' Neighborhood-图论-Havel-Hakimi定理-java
- POJ 1659 Frogs' Neighborhood (havel定理)
- poj 1659 Frogs' Neighborhood(Heal定理)
- POJ-1659 Frogs' Neighborhood Havel-Hakimi定理|贪心可图化
- poj 1659 Frogs' Neighborhood(判断序列可图)
- POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)
- POJ 1659 - Frogs' Neighborhood , Havel_Hakimi 定理
- POJ 1659-Frogs' Neighborhood(Havel-Hakimi定理-度序列构图)
- poj1659 Frogs' Neighborhood (Havel-Hakimi定理可图化判定)
- poj 1659 Frogs' Neighborhood
- poj 1659 Frogs' Neighborhood (DFS)