Description
打败万恶的ghost以后,将军准备回寝室告诉大伙儿这个消息,没想到杯具又发生了…
你知道有种鬼叫“路鬼”吗?让人莫名其妙的迷路,将军就被这种鬼上身了。将军本来要上楼的,但是因为鬼上身,他要不就上一层楼,要不就下一层楼,这个是随机的,他不能控制自己啦!
假设将军住在第M楼,刚开始将军在K楼,因为体力原因,将军只能上或者下N次楼,假设东6宿舍共有100层。现在问当体力消耗完的时候,将军刚好回到寝室那一层有多少种走法。
例如:将军住在5楼,将军能上或者下5次楼,现在在1楼,
那么将军将回不到寝室啦,为什么?我也不知道。
Input
有多组测试数据,每组测试数据共一行,为M,N,K(0 < N < 21,0 < M,K < 101)的值,中间以空格分开,分别代表将军住在第几层,能移动几次和刚开始在第几层;
Output
对应每一组测试数据,输出体力消耗完时将军刚好回到寝室那一层的走法总数
Sample Input
1 2 3 |
44 5 41 5 5 1 |
Sample Output
1 2 |
5 0 |
#include<iostream> #include<cstring> using namespace std; int main() { int n, m, k, i, j; while (cin >> m >> n >> k) { int dp[105][2]; memset(dp, 0, sizeof(dp)); dp[k][0] = 1; int d = 1; for (i = 0; i < n; i++) { for (j = 1; j <= 100; j++) dp[j][d] = dp[j - 1][1 - d] + dp[j + 1][1 - d]; d = 1 - d; } cout << dp[m][1 - d] << endl; } return 0; }
时间: 2024-09-30 00:55:35