好简单的一个题目,放在搜索专题里,大家都以为难,老师跑过来说这道题很简单,叫我做一下。。
有点变态的就是直接一个一个数据读进去没运行结果出,改成字符串读进去就可以。有点搞不懂。
Pascal's Travels
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 6 Accepted Submission(s) : 4
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
Consider the 4 x 4 board shown in Figure 1, where the solid circle identifies the start position and the dashed circle identifies the target. Figure 2 shows the three paths from the start to the target, with the irrelevant numbers in each removed.
Figure 1
Figure 2
Input
Output
Sample Input
4 2331 1213 1231 3110 4 3332 1213 1232 2120 5 11101 01111 11111 11101 11101 -1
Sample Output
3 0 7
#include<iostream>
using namespace std;
#define max 50
int a[max][max];
__int64 sum[max][max];
int main()
{
int n,i,j;
char ch[50];
while(scanf("%d",&n)!=EOF)
{
getchar();
if (n==-1) return 0;
for(i=0;i<n;i++)
{
gets(ch);
for(j=0;j<n;j++)
a[i][j]=ch[j]-'0';
}
memset(sum,0,sizeof(sum));
sum[0][0]=1;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if (a[i][j]==0) continue;
sum[i+a[i][j]][j]+=sum[i][j];
sum[i][j+a[i][j]]+=sum[i][j];
}
}
cout<<sum[n-1][n-1]<<endl;
}
return 0;
}