求助。。。

P1002 [NOIP2002 普及组] 过河卒

多少分?
by ZkjTCTC @ 2020-09-17 21:26:21


0...
by Grace25 @ 2020-09-19 19:56:04


改动了一点 ```cpp #include<iostream> #include<cmath> using namespace std; int main(){ int r[23][23]={0},n,m,x,y; cin>>n>>m>>x>>y; x++; y++; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ r[i][j]=r[i-1][j]+r[i][j-1]; r[1][1]=1; r[1][2]=1; r[2][1]=1; //r[x][y]=0; r[x-1][y-2]=0; r[x-1][y+2]=0; r[x+1][y-2]=0; r[x+1][y+2]=0; r[x+2][y-1]=0; r[x+2][y+1]=0; r[x-2][y-1]=0; r[x-2][y+1]=0; } } cout<<r[n][m]<<endl; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(i == x && j == y){ cout<<"* "; continue; } cout<<r[i][j]<<" "; } cout<<endl; } return 0; } ```
by Grace25 @ 2020-09-19 19:59:36


@[Grace25](/user/359883) 解题思路存在问题。边更新DP表,边赋初值,这样存在问题。应该是先确定各个点的初值,然后使用行优先(或者列优先)的顺序更新DP表。
by metaphysis @ 2020-09-19 20:06:55


大佬我不是用DP做的。。。
by Grace25 @ 2020-09-21 20:13:27


|