60分

P1002 [NOIP2002 普及组] 过河卒

@[zhuhanyue](/user/917312) 开 `long long`
by 杜都督 @ 2024-03-23 18:54:26


十年OI一场空,不开long long见祖宗
by Entity_XD @ 2024-03-24 11:14:15


@[zhuhanyue](/user/917312) 好
by ss2315zjx @ 2024-03-30 14:19:09


``` #include<bits/stdc++.h> using namespace std; int a[21][21]; long long f[21][21]; int n,m,x,y; const int d[9][2]={{0,0},{-1,-2},{-1,2},{1,-2},{1,2},{-2,-1},{-2,1},{2,-1},{2,1}}; void ff(int x,int y){ int xx,yy; memset(a,0,sizeof(a)); for(int i=0;i<9;i++){ xx=x+d[i][0];yy=y+d[i][1]; if(xx>=0&&x<=n&&yy>=0&&yy<=m) a[xx][yy]=1; } return ; } int main(){ cin>>n>>m>>x>>y; ff(x,y); f[0][0]=1; for(int i=1;i<=n;i++){ if(a[i][0]==1)f[i][0]=0; else f[i][0]=f[i-1][0]; } for(int i=1;i<=m;i++){ if(a[0][i]==1)f[0][i]=0; else f[0][i]=f[0][i-1]; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j]==1)f[i][j]=0; else f[i][j]=f[i-1][j]+f[i][j-1]; } } cout<<f[n][m]; } ```
by Ryan2024hcy @ 2024-03-31 10:27:10


|