弦图ZOJ 1015 Fishing Net 判定方法

haolong8553899

haolong8553899

2016-02-19 11:51

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享弦图ZOJ 1015 Fishing Net 判定方法的教程,热爱PS的朋友们快点看过来吧!
做题思路
1 弦图,看了一个周末有木有!太弱了点,算法完全按照CDQ的PPT上给的最大势算法(MCS)求完美消除序列。前前后后sumbit了19次,为WA提供了大量分母啊。。。。 多写点为自己备份吧。
2 有用的资料: 
3 定理:一个图是弦图当且仅当它有一个完美消除序列。所以要先搞到完美消除序列:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
4 如何判断搞到的是不是完美消除序列:


贴代码:(V*V的复杂度。。。)
代码如下:

#include iostream
#include cstdio
#include cstring
#include algorithm
using namespace std;
const int maxn=1000+10;
int gra[maxn][maxn];
int n, m;
int label[maxn], temp[maxn], num[maxn];
void numberVertex()
{
int i, j;
//label[n]=0, num[n]=1;
for(i=n; i=1; i--)
{
int mm=-1, pos;
for(j=1; j=n; j++)
{
if( !num[j] && label[j]mm)
{
mm=label[j];
pos=j;
}
}
num[pos]=i;
for(j=1; j=n; j++)
{
if( !num[j] && ( gra[pos][j] || gra[j][pos] ) )
label[j]++;
}
}
return ;
}
int check()
{
int i, j, flag=1;
for(i=1; i=n && flag; i++)
{
memset(temp,0,sizeof(temp));
int len=0;
for(j=1; j=n; j++)
{
if( num[i]num[j] && gra[ i ][ j ] )
{
temp[len++]=j;
}
}
for(j=1; jlen; j++)//在此WA了一天有木有。。。
if(num[ temp[0] ]num[ temp[j] ])
swap(temp[0], temp[j]);
for(j=1; jlen; j++)
if( !gra[ temp[0] ][ temp[j] ] )
{
flag=0;
break;
}
}
return flag;
}
int main()
{
while( scanf("%d %d",&n,&m)!=EOF )
{
if(n==0 && m==0)
break;
memset(label,0,sizeof(label));
memset(num,0,sizeof(num));
memset(gra,0,sizeof(gra));
for(int i=0; im; i++)
{
int x, y;
scanf("%d %d",&x, &y);
gra[x][y]=gra[y][x]=1;
}
numberVertex();
if( check() )
puts("Perfectn");
else
puts("Imperfectn");
}
return 0;
}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

弦图ZOJ 1015 Fishing Net 判定方法

编程语言 网络编程
弦图ZOJ 1015 Fishing Net 判定方法

怎么判定钻石戒指级别 钻石戒指级别判定方法

钻戒 戒指
怎么判定钻石戒指级别 钻石戒指级别判定方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

古筝有多少根弦

生活常识 古筝入门
古筝有多少根弦

充电宝额定能量的判定方法

生活常识
充电宝额定能量的判定方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《怪物弹珠》弹珠好坏判定方法分享攻略

游戏动漫
《怪物弹珠》弹珠好坏判定方法分享攻略

冰箱容量如何判定

家用电器
冰箱容量如何判定

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

prototype 1.5相关知识及他人笔记

prototype 1.5相关知识及他人笔记

c++函数中的指针参数与地址参数区别介绍

c++函数中的指针参数与地址参数区别介绍
下拉加载更多内容 ↓