[恢]hdu 2554

2011-12-29 13:51:00

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2554

题意:中文,有点绕但是能看懂,不多说了。

mark:着实不会,看了网上的规律觉得好扯淡。n%4的余数是3或0的就是Y,否则是N。。。

不知道怎么来的,打表也只能看到前12项,之后就非常慢了。

代码(C编译):

main(n){while(scanf("%d",&n),n){puts((n+1)&2?"N":"Y");}}


打表的程序也贴一下吧:

# include <stdio.h>


int n ;
int visited[50] ;
int ans ;

void dfs (int pos)
{
int i ;
if (ans) return ;
if (pos == 0)
{
for (i = 1 ; i <= 2*n ; i++)
printf ("%d ", visited[i]) ;
puts ("") ;
ans ++ ;
}
for (i = 1 ; i+pos+1 <= 2*n ; i++)
{
if (visited[i] != 0 || visited[i+pos+1] != 0) continue ;
visited[i] = visited[i+pos+1] = i ;
dfs (pos-1) ;
visited[i] = visited[i+pos+1] = 0 ;
}
}


int main ()
{
int i ;
for (i = 1 ; i <= 12 ; i++)
{
n = i ;
ans = 0 ;
printf ("Case %d:\n", i) ;
dfs (n) ;
}
puts ("finish") ;
return 0 ;
}



posted @ 2012-01-07 00:02  Seraph2012  阅读(220)  评论(0编辑  收藏  举报