2 条题解

  • 1
    @ 2025-7-3 10:49:51

    动态规划

    双倍经验:题目详情 - 马拦过河卒 - zhujioj

    #include<bits/stdc++.h>
    using namespace std;
    long long f[1005][1005],n,x,y,a,b,m[1005][1005];
    int main(){
    	cin>>a>>b>>x>>y;
    	a++,b++,x++,y++;
    	m[x-2][y-1]=1;
    	m[x-2][y+1]=1;
    	m[x-1][y-2]=1;
    	m[x-1][y+2]=1;
    	m[x+1][y-2]=1;
    	m[x+1][y+2]=1;
    	m[x+2][y-1]=1;	
    	m[x+2][y+1]=1;
    	m[x][y]=1;
    	f[1][1]=1;
    	for(int i=1;i<=a;i++){
    		for(int j=1;j<=b;j++){
    			if(i==1&&j==1)continue;
    		    if(m[i][j]==0)f[i][j]=f[i-1][j]+f[i][j-1];		
    		}                
    	}
    //	cout<<endl;
    //	for(int i=1;i<=a;i++){
    //		for(int j=1;j<=b;j++){
    //			cout<<f[i][j]<<' ';
    //		}
    //		cout<<endl;
    //	}
    	cout<<f[a][b];
        return 0;
    }
    
    • -2
      @ 2025-7-3 10:17:45

      #include<bits/stdc++.h> using namespace std; long long n,w,p,q,a[30][30]; long long m[101][100]; int main() { cin>>n>>w>>p>>q; m[p][q]=1;m[p-2][q-1]=1; m[p-2][q+1]=1;m[p+2][q+1]=1; m[p+2][q-1]=1;m[p-1][q-2]=1; m[p-1][q+2]=1;m[p+1][q+2]=1;m[p+1][q-2]=1; for(int i=0;i<=n;i++) { for(int j=0;j<=w;j++) { if(m[i][j]) { continue; } else { if(i0&&j0)a[i][j]=1; else if(i0&&j>0) { a[i][j]=a[i][j-1]; } else if(j0&&i>0) { a[i][j]=a[i-1][j]; } else { a[i][j]=a[i-1][j]+a[i][j-1]; } } } } cout<<a[n][w]; return 0; }

      • 1

      信息

      ID
      619
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      105
      已通过
      26
      上传者