3 条题解

  • 0
    @ 2025-4-12 10:52:04
    #include<iostream>
    using namespace std;
    const int N=20+10;
    int n,m,x,y;
    bool v[N][N];
    long long a[N][N];
    int dx[]={0,-1,-2,-2,-1,1,2,2,1};
    int dy[]={0,-2,-1,1,2,2,1,-1,-2};
    void init(){
    	for(int i=0;i<=8;i++){
    		int xx=x+dx[i];
    		int yy=y+dy[i];
    		if(xx>=0&&xx<=n&&yy>=0&&yy<=n){
    			v[xx][yy]=1;
    		}
    	}
    	for(int i=0;i<=m;i++){
    		if(v[0][i]==0){
    			a[0][i]=1;
    		}else{
    			break;
    		}
    	}
    	for(int i=0;i<=n;i++){
    		if(v[i][0]==0){
    			a[i][0]=1;
    		}else{
    			break;
    		}
    	}
    }
    int main(){
    	cin>>n>>m>>x>>y;
    	init();
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(v[i][j]==0){
    				a[i][j]=a[i-1][j]+a[i][j-1];
    			}
    		}
    	}
    	cout<<a[n][m];
    }
    
    
    
    
    
    
    
    

    信息

    ID
    659
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    91
    已通过
    54
    上传者