TLE 40 分 求解

P1002 [NOIP2002 普及组] 过河卒

这题的数据爆 int 了...你用 dfs 当然会 TLE 正解是 dp : $f[i][j]=f[i-1][j]+f[i][j-1]$
by nothingness @ 2018-07-12 18:31:27


```cpp // luogu-judger-enable-o2 #include<iostream> using namespace std; int main(){ long long n; long long m; long long x; long long y; cin>>n>>m>>x>>y; n=n+1; m=m+1; x=x+1; y=y+1; long long map[n+1][m+1]; for(int i=0;i<=n;i++){ for(int j=0;j<=m;j++){ map[i][j]=0; } } //map[x][y]=0; //map[x+2][y+1]=0; //map[x+1][y+2]=0; //map[x-2][y+1]=0; //map[x-1][y+2]=0; //map[x-2][y-1]=0; //map[x-1][y-2]=0; //map[x+2][y-1]=0; //map[x+1][y-2]=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(i==1&&j==1){ map[i][j]=1; }else if((i==x&&j==y)||(i==x+2&&j==y+1)||(i==x+1&&j==y+2)||(i==x-2&&j==y+1)||(i==x-1&&j==y+2)||(i==x-2&&j==y-1)||(i==x-1&&j==y-2)||(i==x+2&&j==y-1)||(i==x+1&&j==y-2)){ map[i][j]=0; }else{ map[i][j]=map[i-1][j]+map[i][j-1]; } } } cout<<map[n][m]; return 0; } ```
by JAMERES86 @ 2018-07-12 18:51:13


@[nothingness](/space/show?uid=31317) 有DP教学? 只学过DFS...
by NoaHD @ 2018-07-12 19:20:52


|