pku 1659 (Havel定理)
2010-05-26 14:28
239 查看
Havel定理参考:http://hi.baidu.com/roba/blog/item/0732d01645a9ec1b972b4380.html#send
知道这个定理之后就很简单了,要注意的是每个case之间要空行,否则不给PE而是直接WA。
知道这个定理之后就很简单了,要注意的是每个case之间要空行,否则不给PE而是直接WA。
#include <iostream> #include <algorithm> using namespace std; class point { public: int pos,degree; }; bool g[15][15]; point seq[15]; int cmp(const point &a,const point &b) { return a.degree>b.degree; } int main() { int cas,n; bool flag; cin>>cas; while(cas--) { cin>>n; flag=true; memset(g,false,sizeof(g)); for(int i=0;i<n;++i) { cin>>seq[i].degree; seq[i].pos=i; } //Havel定理 for(int i=0;i<n;++i) { sort(seq,seq+n,cmp); if(seq[0].degree==0) break; for(int j=1;j<n;++j) { seq[j].degree--; if(seq[j].degree<0) { flag=false; break; } g[seq[0].pos][seq[j].pos]=g[seq[j].pos][seq[0].pos]=true; seq[0].degree--; if(seq[0].degree==0) break; } if(!flag) break; } //solve if(!flag) cout<<"NO"<<endl; else { 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; } } cout<<endl; } system("pause"); return 0; }
相关文章推荐
- PKU1659(Frogs' Neighborhood)-简单图的判定+构造,Havel定理
- pku1659 Frogs' Neighborhood(havel定理)
- PKU 1659 Frogs' Neighborhood - 贪心 Havel定理
- POJ 1659 Frogs' Neighborhood 可图性判断-Havel定理
- pku1659
- 【Havel定理判断可图化】POJ 1659
- poj-1659-Frogs' Neighborhood-havel定理
- POJ1659 Frogs' Neighborhood(Havel定理)
- 【Havel-Hakimi定理】PKU-1659-Frogs' Neighborhood
- pku 1659(判断可图化Havel-Hakiwi定理的应用)
- PKU1659+havel-hakimi定理
- poj 1659 Frogs' Neighborhood(Havel定理求度序列是否成图)
- 从点的度推出邻接图(贪心解)——pku1659
- pku1659 Frogs' Neighborhood
- Frogs' Neighborhood POJ - 1659 havel定理
- PKU 1659 Frogs' Neighborhood
- POJ - 1659 Frogs' Neighborhood 【Havel定理可图化】
- poj 1659 (havel定理)
- POJ 1659 Frogs' Neighborhood (havel定理)
- pku 1061