zoukankan
html css js c++ java
今天的一个哈密顿图 写了一个恶心的死搜
#include
<
string
.h
>
#include
<
stdio.h
>
int
m, n;
bool
link[
22
][
22
];
bool
v[
22
][
22
];
bool
ll;
bool
lll;
int
bi,bj,ei,ej;
int
c1;
void
dfs(
int
i,
int
j)
{
v[i][j]
=
1
;
if
(i
-
1
>=
0
&&
v[i
-
1
][j]
==
0
&&
link[i
-
1
][j]
==
0
)
{
dfs(i
-
1
,j);
}
if
(j
-
1
>=
0
&&
v[i][j
-
1
]
==
0
&&
link[i][j
-
1
]
==
0
)
{
dfs(i,j
-
1
);
}
if
(i
+
1
<
n
&&
v[i
+
1
][j]
==
0
&&
link[i
+
1
][j]
==
0
)
{
dfs(i
+
1
,j);
}
if
(j
+
1
<
m
&&
v[i][j
+
1
]
==
0
&&
link[i][j
+
1
]
==
0
)
{
dfs(i,j
+
1
);
}
}
void
DFS(
int
i,
int
j)
{
bool
ss
=
0
;
v[i][j]
=
1
;
bool
vv[
21
][
21
];
int
i1,j1;
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
vv[i1][j1]
=
v[i1][j1];
v[i][j]
=
0
;
int
ccc
=
0
;
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
{
if
(v[i1][j1]
==
0
&&
link[i1][j1]
==
0
)
{
int
cc
=
0
;
if
(i1
-
1
>=
0
&&
v[i1
-
1
][j1]
==
0
&&
link[i1
-
1
][j1]
==
0
)
cc
++
;
if
(j1
-
1
>=
0
&&
v[i1][j1
-
1
]
==
0
&&
link[i1][j1
-
1
]
==
0
)
cc
++
;
if
(i1
+
1
<
n
&&
v[i1
+
1
][j1]
==
0
&&
link[i1
+
1
][j1]
==
0
)
cc
++
;
if
(j1
+
1
<
m
&&
v[i1][j1
+
1
]
==
0
&&
link[i1][j1
+
1
]
==
0
)
cc
++
;
if
(cc
==
1
)
{
ccc
++
;
}
}
}
bool
con
=
1
;
if
(ccc
>
2
) con
=
0
;
v[i][j]
=
1
;
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
if
(link[i1][j1]
==
0
&&
v[i1][j1]
==
0
)
dfs(i1,j1);
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
if
(v[i1][j1]
==
0
&&
link[i1][j1]
==
0
)
con
=
0
;
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
v[i1][j1]
=
vv[i1][j1];
if
(con)
{
if
(i
-
1
>=
0
&&
v[i
-
1
][j]
==
0
&&
link[i
-
1
][j]
==
0
)
{
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
v[i1][j1]
=
vv[i1][j1];
DFS(i
-
1
,j);
ss
=
1
;
}
if
(j
-
1
>=
0
&&
v[i][j
-
1
]
==
0
&&
link[i][j
-
1
]
==
0
)
{
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
v[i1][j1]
=
vv[i1][j1];
DFS(i,j
-
1
);
ss
=
1
;
}
if
(i
+
1
<
n
&&
v[i
+
1
][j]
==
0
&&
link[i
+
1
][j]
==
0
)
{
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
v[i1][j1]
=
vv[i1][j1];
DFS(i
+
1
,j);
ss
=
1
;
}
if
(j
+
1
<
m
&&
v[i][j
+
1
]
==
0
&&
link[i][j
+
1
]
==
0
)
{
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
v[i1][j1]
=
vv[i1][j1];
DFS(i,j
+
1
);
ss
=
1
;
}
if
(ss
==
0
)
{
ll
=
1
;
for
(i1
=
0
;i1
<
n;i1
++
)
for
(j1
=
0
;j1
<
m;j1
++
)
{
if
(v[i1][j1]
==
0
&&
link[i1][j1]
==
0
)
{
ll
=
0
;
i1
=
n,j1
=
m;
break
;
}
}
if
(ll)
{
lll
=
1
;
return
;}
}
}
}
int
main()
{
while
(scanf(
"
%d%d
"
,
&
n,
&
m)
==
2
)
{
lll
=
0
;
ll
=
1
;
memset(v,
0
,
sizeof
(v));
if
(m
==
0
&&
n
==
0
)
break
;
int
i, j;
for
(i
=
0
;i
<
n;i
++
)
{
for
(j
=
0
;j
<
m;j
++
)
{
scanf(
"
%d
"
,
&
link[i][j]);
}
}
ei
=
21
,ej
=
21
;
c1
=
0
;
for
(i
=
0
;i
<
n;i
++
)
for
(j
=
0
;j
<
m;j
++
)
{
if
(v[i][j]
==
0
&&
link[i][j]
==
0
)
{
int
cc
=
0
;
if
(i
-
1
>=
0
&&
v[i
-
1
][j]
==
0
&&
link[i
-
1
][j]
==
0
)
cc
++
;
if
(j
-
1
>=
0
&&
v[i][j
-
1
]
==
0
&&
link[i][j
-
1
]
==
0
)
cc
++
;
if
(i
+
1
<
n
&&
v[i
+
1
][j]
==
0
&&
link[i
+
1
][j]
==
0
)
cc
++
;
if
(j
+
1
<
m
&&
v[i][j
+
1
]
==
0
&&
link[i][j
+
1
]
==
0
)
cc
++
;
if
(cc
==
1
)
{
bi
=
i,bj
=
j;
c1
++
;
i
=
n,j
=
m;
v[bi][bj]
=
1
;
break
;
}
}
}
for
(i
=
0
;i
<
n;i
++
)
for
(j
=
0
;j
<
m;j
++
)
{
if
(v[i][j]
==
0
&&
link[i][j]
==
0
)
{
int
cc
=
0
;
if
(i
-
1
>=
0
&&
v[i
-
1
][j]
==
0
&&
link[i
-
1
][j]
==
0
)
cc
++
;
if
(j
-
1
>=
0
&&
v[i][j
-
1
]
==
0
&&
link[i][j
-
1
]
==
0
)
cc
++
;
if
(i
+
1
<
n
&&
v[i
+
1
][j]
==
0
&&
link[i
+
1
][j]
==
0
)
cc
++
;
if
(j
+
1
<
m
&&
v[i][j
+
1
]
==
0
&&
link[i][j
+
1
]
==
0
)
cc
++
;
if
(cc
==
1
)
{
c1
++
;
ei
=
i,ej
=
j;
i
=
n,j
=
m;
break
;
}
}
}
if
(c1
==
1
||
c1
==
2
)
{
memset(v,
0
,
sizeof
(v));
DFS(bi,bj);
}
if
(c1
==
0
)
{
for
(i
=
0
;i
<
n;i
++
)
{
for
(j
=
0
;j
<
m;j
++
)
{
if
(link[i][j]
==
0
)
{
memset(v,
0
,
sizeof
(v));
DFS(i,j);
}
if
(lll
==
1
)
{
i
=
n,j
=
m;
break
;
}
}
}
}
if
(lll)
printf(
"
Yes\n
"
);
else
printf(
"
No\n
"
);
}
return
0
;
}
查看全文
相关阅读:
刚搬过了,请大家多多支持!!
[导入]搞到了visual studio 2005 professional edtion
一些常用的正则表达式
xinxp的隐藏技巧
今天领准考证了
推荐一本.net的好书
今天装上Linux了
隐藏在Windows XP中的28个秘密武器
为 Sharepoint 创建可视的 WebPart
在 NHibernate 中一切必须是 Virtual 的吗?
原文地址:https://www.cnblogs.com/SQL/p/913608.html
最新文章
面向构件开发SOA Virus
场馆和健身馆的区别 Virus
stack Virus
(翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(三)
(翻译)《Expert .NET 2.0 IL Assembler》 第七章 命名空间和类(三)
(翻译)《Expert .NET 2.0 IL Assembler》 第七章 命名空间和类(二)
(翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(一)
人生,就是0和1的组合
(翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(二)
(翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(四)
热门文章
(翻译)《Expert .NET 2.0 IL Assembler》 第七章 命名空间和类(一)
也谈多线程同步
MVP 150$购物券 买Zune Mp3 8G 到手
C#中out和ref的区别
Eclipse中英文切换
ADO.net下几个提高数据访问性能的方法
eclipse下插件安装
我的简历
[导入]生命之短暂,人生之无常。
Google搜索秘籍大全
Copyright © 2011-2022 走看看