首页 > 代码库 > 搜索练习SWUST OJ 0324 将军鬼上身了 解题报告
搜索练习SWUST OJ 0324 将军鬼上身了 解题报告
打败万恶的ghost以后,将军准备回寝室告诉大伙儿这个消息,没想到杯具又发生了…
你知道有种鬼叫“路鬼”吗?让人莫名其妙的迷路,将军就被这种鬼上身了。将军本来要上楼的,但是因为鬼上身,他要不就上一层楼,要不就下一层楼,这个是随机的,他不能控制自己啦!
假设将军住在第M楼,刚开始将军在K楼,因为体力原因,将军只能上或者下N次楼,假设东6宿舍共有100层。现在问当体力消耗完的时候,将军刚好回到寝室那一层有多少种走法。
例如:将军住在5楼,将军能上或者下5次楼,现在在1楼,
那么将军将回不到寝室啦,为什么?我也不知道。
你知道有种鬼叫“路鬼”吗?让人莫名其妙的迷路,将军就被这种鬼上身了。将军本来要上楼的,但是因为鬼上身,他要不就上一层楼,要不就下一层楼,这个是随机的,他不能控制自己啦!
假设将军住在第M楼,刚开始将军在K楼,因为体力原因,将军只能上或者下N次楼,假设东6宿舍共有100层。现在问当体力消耗完的时候,将军刚好回到寝室那一层有多少种走法。
例如:将军住在5楼,将军能上或者下5次楼,现在在1楼,
那么将军将回不到寝室啦,为什么?我也不知道。
Description
有多组测试数据,每组测试数据共一行,为M,N,K(0 < N < 21,0 < M,K < 101)的值,中间以空格分开,分别代表将军住在第几层,能移动几次和刚开始在第几层;
Input
对应每一组测试数据,输出体力消耗完时将军刚好回到寝室那一层的走法总数
Output
44 5 41
5 5 1
Sample Input
5
0
1 #include<stdio.h> 2 int x=0; 3 void dfs(int m,int n,int step) 4 { 5 if(step==m && n==0) 6 { 7 x++; 8 } 9 if(n==0)10 return;11 if(step+1<101)12 dfs(m,n-1,step+1);13 if(step-1>0)14 dfs(m,n-1,step-1);15 }16 int main()17 {18 int m,n,k;19 x=0;20 while(scanf("%d %d %d",&m,&n,&k)!=EOF)21 {22 dfs(m,n,k);23 printf("%d\n",x);24 x=0;25 }26 return 0;27 }
搜索练习SWUST OJ 0324 将军鬼上身了 解题报告
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。