#include<stdio.h> int n,m,a[50],b[50],c,cou=0,dx[2]={1,2}; void dfs(int x) { if(x==n) { cou++; return ; } else { int i; for(i=0;i<2;i++) { int X=x+dx[i]; if(b[X]==0&&a[X]!=1&&1<=X&&X<=n) { b[X]=1; dfs(X); b[X]=0; } } } } int main() { scanf("%d%d",&n,&m); int i; for(i=0;i<m;i++) { scanf("%d",&c); a[c]=1; } b[1]=1; dfs(1); printf("%d",cou); return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1276 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:626 |
最长单词 (C语言代码)浏览:1474 |
A+B for Input-Output Practice (III) (C语言代码)浏览:592 |
wu-理财计划 (C++代码)浏览:907 |
蚂蚁感冒 (C语言代码)浏览:816 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:692 |
矩阵转置 (C语言代码)浏览:855 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:683 |