求大神指点
查看原帖
求大神指点
1562979
witch524楼主2024/11/23 06:48
#include <iostream>
using namespace std;
int main(){
	int qp[25][25]={0};
    long long dp[21][21]={0};
    int fx,fy,mx,my;
    cin>>fx>>fy>>mx>>my;
    qp[mx][my]=1;
    qp[mx+1][my+2]=1;
	qp[mx+1][my-2]=1;
	qp[mx+2][my+1]=1;
	qp[mx+2][my-1]=1;
	qp[mx-1][my+2]=1;
	qp[mx-1][my-2]=1;
	qp[mx-2][my+1]=1;
	qp[mx-2][my-1]=1;
	for(int i=0;i<=fx;i++){
		for(int j=0;j<=fy;j++){
			if(qp[i][j]){
				  dp[i][j]=0;
			}
			else{			
			 if(i==0&&j==0){
				dp[i][j]=1;
			}
			else if(i==0&&j>0){
				dp[i][j]=dp[i][j-1];
			}
			else if(j==0&&i>0){
				dp[i][j]=dp[i-1][j];
			}
			else
			{
				dp[i][j]=dp[i][j-1]+dp[i-1][j];
			}
		}
		}
	}
	cout<<dp[fx][fy];
}

第29 32行为什么改成dp[i][j]=1;就不过了 从0,0到0,x或y,0不是只需一直向右或向下即可吗 也就是说只有一条路线 这里为什么1不行

2024/11/23 06:48
加载中...