题目的数据范围有迷惑性,20行20列直接飞出int了
查看原帖
题目的数据范围有迷惑性,20行20列直接飞出int了
1141072
YFD_xuda楼主2024/10/10 15:24
#include <iostream>
using namespace std;
int n,m,cr,cl,cx[8]={-1,-2,-2,-1,1,2,2,1},cy[8]={-2,-1,1,2,2,1,-1,-2};
long long dp[21][21],fx[21][21];

int main(){
    cin >>n >> m >> cr>>cl;//cr行,cl列 
    fx[cr][cl] = 1;
    for(int i=0;i<8;i++){
    	int dr = cr+cx[i];
    	int dl = cl+cy[i];
    	if(dr>=0 && dr<=n && dl>=0 && dl<=m){
    		fx[dr][dl] = 1;
		}
	}
    for(int i=0;i<=n;i++){
        if(!fx[i][0]){
            dp[i][0]=1;
        }else{
        	break;
		}
    }
    for(int j=0;j<=m;j++){
        if(!fx[0][j]){
            dp[0][j]=1;
        }else{
        	break;
		}
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(!fx[i][j])
                dp[i][j] = dp[i-1][j]+dp[i][j-1];
        }
    }
    cout << dp[n][m];
    return 0;
}
2024/10/10 15:24
加载中...