poj1659(贪心构造图)
来源:互联网 发布:java 多线程 锁 编辑:程序博客网 时间:2024/04/30 05:19
题意:给出一个无向图中所有点的度数,要求输出一种图的构造。
解法:就是个贪心,第一次遇到这个题是在长沙区域赛上,当时是一道几乎一样的题目,在场上想到了这个贪心方法,还简单证明了一下,。,。,。但是由于比赛时那个题目过的人很少,加上一直在帮队友调试卡的题目,所以场上没有敲,比赛结束后都有点后悔了,还是水平太逗了,。,。现在做1A,其实真的很简单。就先将度从大到小排序,然后将最大的那个度依次往后分配,然后将剩余点的度再排序进行分配,。,。,。一直迭代到全部分完。中间任何环节出现非法的情况就说明图不存在。
代码:
#include <iostream>#include <algorithm>#include <stdio.h>#include <cstring>using namespace std;struct point{ int position; int number;} sum[11];bool operator<(point a,point b){ return a.number<b.number;}bool num[11][11];int n;int main(){ //freopen("in.txt","r",stdin); //freopen("in.txt","r",stdin); int t; cin>>t; while(t--) { memset(num,0,sizeof num); scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&sum[i].number),sum[i].position=i; bool b=true; for(int i=0;i<n-1;i++) { sort(sum+i,sum+n); reverse(sum+i,sum+n); bool flag=true; if(sum[i].number>n-1-i){b=false;break;} for(int j=0;j<sum[i].number;j++) if(sum[j+i+1].number==0) { flag=false; break; } else sum[j+i+1].number--,num[sum[i].position][sum[j+i+1].position]=1,num[sum[i+j+1].position][sum[i].position]=1; if(!flag) {b=false;break;} } if(sum[n-1].number!=0)b=false; if(!b) cout<<"NO\n"; else { cout<<"YES\n"; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) cout<<num[i][j]<<" "; cout<<endl; } } cout<<endl; }}
0 0
- poj1659(贪心构造图)
- poj1659 Frogs' Neighborhood 根据度数列构造图,havel_hakimi算法
- poj1659
- POJ1659
- poj1659—青蛙的邻居—度数与可图
- POJ1659 Frogs' Neighborhood(Havel-Hakimi 定理,判断序列可图)
- Havel-Hakimi定理(判断一个序列是否可图)->POJ1659
- CF232A-cycles 构造,贪心
- Codeforces_394C_Dominoes(贪心构造)
- sgu279:Bipermutations(贪心构造)
- Codeforces401C Team【构造+贪心】
- hdu 5573贪心构造
- C. Mittens----构造+贪心
- POJ1659 Frogs' Neighborhood ACM解题报告(图论基础 邻接矩阵)
- poj1659(Harvel定理)
- poj1659 - Frogs' Neighborhood
- poj1659 Havel-hakimi定理
- 0.8poj1659(Havel定理)
- Expression Blend实例中文教程(9) - 行为快速入门Behaviors
- 上位机USB移植心得
- xcode安装cocos2d-x3.0
- Media Playback
- Java调用XML的方法:DocumentBuilderFactory
- poj1659(贪心构造图)
- Expression Blend实例中文教程(10) - 缓冲动画快速入门Easing
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- 2014释放自己能量
- Oracle RAC 学习笔记3
- Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template
- jquery控制页面滚动条
- Spark与Hadoop计算模型比较分析
- 图形识别