poj1659 Frogs' Neighborhood
2016-05-28 11:10
239 查看
链接:http://poj.org/problem?id=1659
分析:Havel-Hakimi定理的直接应用
分析:Havel-Hakimi定理的直接应用
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #include<set> #include<map> #include<queue> #include<vector> #include<stack> #include<bitset> using namespace std; int n; int a[11][11]; struct node { int x,y; }b[11]; int cmp(node a,node b) { return a.x<b.x; } int main() { int T; cin>>T; while (T--) { cin>>n; for (int i=1;i<=n;i++) cin>>b[i].x,b[i].y=i; memset(a,0,sizeof(a)); int flag=0; for (int i=1;i<=n-1;i++) { sort(b+1,b+1+n-i+1,cmp); int k=b[n-i+1].x; for (int j=n-i;k;j--) { b[j].x--; k--; a[b[n-i+1].y][b[j].y]=a[b[j].y][b[n-i+1].y]=1; if (j<1||b[j].x<0) { flag=1; break; } } if (flag) break; } if (b[1].x) flag=1; if (flag) printf("NO\n\n"); else { printf("YES\n"); for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { printf("%d",a[i][j]); if (j!=n) printf(" "); else printf("\n"); } } printf("\n"); } } return 0; }
相关文章推荐
- 洛谷 P1005 矩阵取数游戏
- 添加远程库
- JAVA时间日期学习笔记
- 封装
- Lombok - 消除冗长的 java 代码
- 使用 npm 和 bower 发布插件
- 嵌入式:节省内存的软件设计技巧
- 笔记8:列表生成式
- 第13周实践项目-立体族类共有的抽象类
- MySql - InnoDB - 事务 , Php版
- Ubuntu10.04下安装tftp服务器
- quick lua-binding使用详解
- NYOJ 456 邮票分你一半
- 简单dp
- 【HDU】 1333 Smith Numbers
- 阅读笔记03
- 漂亮的代码4:缓存器的妙用
- VS搭载SQL 常用语句 (1)
- java随机数生成算法
- eclipse实用的快捷键