2 条题解
-
1
动态规划
#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
#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
- 上传者