poj 1659 Frogs' Neighborhood
来源:互联网 发布:华为商城网站源码 编辑:程序博客网 时间:2024/06/07 17:02
题目链接:http://poj.org/problem?id=1659
解题思路:
Havel-Hakimi定理的套用,该定理详见http://sbp810050504.blog.51cto.com/2799422/883904
AC代码:
//我的图论学习之路 2#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int maxn=15;int Edge[maxn][maxn];struct node{ int nub;//序号 int du;//度}v[maxn];bool cmp(node a,node b){ if(a.du>=b.du) return true; return false;}int T,N;int main(){ scanf("%d",&T); while(T--) { memset(v,0,sizeof(v)); memset(Edge,0,sizeof(Edge)); scanf("%d",&N); for(int i=0;i<N;i++) { scanf("%d",&v[i].du); v[i].nub=i; } bool sign=true; for(int i=0;i<N&&sign;i++) { sort(v+i,v+N,cmp); int sum=v[i].du; int nub1=v[i].nub; if(sum>N-i-1) { sign=false; break; } else { for(int k=i+1;k<=i+sum&&sign;k++) { if(v[k].du<=0) { sign=false; break; } v[k].du--; Edge[nub1][v[k].nub]=Edge[v[k].nub][nub1]=1; } } } if(sign) { cout<<"YES"<<endl; for(int i=0;i<N;i++) { for(int j=0;j<N;j++) { cout<<Edge[i][j]; if(j!=N-1) cout<<" "; else cout<<endl; } } } else cout<<"NO"<<endl; if(T) cout<<endl; } return 0;}
0 0
- POJ 1659 Frogs' Neighborhood
- poj 1659 Frogs' Neighborhood
- POJ 1659 Frogs' Neighborhood
- POJ:1659Frogs' 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
- POJ 1659 Frogs' Neighborhood
- POJ 1659 Frogs' Neighborhood
- POJ-1659【 Frogs' Neighborhood】
- POJ-1659 Frogs' Neighborhood
- POJ 1659 Frogs' Neighborhood
- poj Frogs' Neighborhood(1659)
- poj 1659 Frogs' Neighborhood
- poj 1659 Frogs' Neighborhood
- 链路层向网络层提供的服务
- spotlight on linux
- remove()与detach()区别
- PHP输出数组中重名的元素的几种处理方法
- poj_1330 Nearest Common Ancestors(LCA)
- poj 1659 Frogs' Neighborhood
- 1
- 2
- codeforces 765A-C
- asp.net core mvc权限控制:分配权限
- revit二次开发中怎样建nurbspline曲线形式的钢筋
- LeetCode 515. Find Largest Value in Each Tree Row
- HDU1000 A + B Problem
- 用WebView制作简易浏览器