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 ;
}