您的位置:首页 > 其它

SDUT1570 C旅行

2012-05-09 16:31 211 查看
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1570

递归求解

View Code

#include <stdio.h>
#include <stdlib.h>
int main()
{
int h, w, a[23][23], i, j, num[23][23];
scanf("%d%d", &h, &w);
memset(num, 0, sizeof(num));
for(i = 1 ; i <= h ; i++)
for(j = 1 ; j <= w ; j++)
{
scanf("%d", &a[i][j]);
}
for(i = 1 ;i <= h ; i++)
{
num[h][0] = 0;
num[h][w+1] = 0;
}
for(i = 1 ; i <= w ; i++)
{
if(num[0][w] == 1)
num[0][w] = 1;
else
num[0][w] = 0;
num[h+1][w] = 0;
}
num[0][w]=1;
for(i = 1 ; i <= h ; i++)
for(j = w ; j >= 1  ; j--)
{
if(a[i][j] == 0)
{
num[i][j] = num[i-1][j]+num[i][j+1];//这个是主要部分
}
}
printf("%d\n", num[h][1]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: