#3#4 WA 求调

P1002 [NOIP2002 普及组] 过河卒

目测有如下几个问题 1.t数组初始值没判边界 2.你的f数组不应该这样赋值 举个栗子 t数组为:0 1 0 0 的时候 你的f数组为:1 0 1 1 正确:1 0 0 0 因为如果这个点走不过去,那么,下一个点也走不过去
by drinktowind @ 2023-09-29 11:18:51


下附代码 ``` #include<bits/stdc++.h> using namespace std; long long int a[25][25]={0}; int f[25][25]={0}; int b[8][2]={{-1,-2},{-1,2},{-2,-1},{2,-1},{-2,1},{1,-2},{2,1},{1,2}}; int main() { // int n,m,x,y; cin>>n>>m>>x>>y; for(int i=0;i<8;i++) { int xx=x+b[i][0]; int yy=y+b[i][1]; if(xx<0||xx>n||yy<0||yy>m) continue; f[xx][yy]=1; } f[x][y]=1; a[0][0]=1; for(int i=1;i<=n;i++) { if(f[i][0]==0) { a[i][0]=a[i-1][0]; } } for(int i=1;i<=m;i++) { if(f[0][i]==0) { a[0][i]=a[0][i-1]; } } for(int i=1;i<=n;i++) { for(int h=1;h<=m;h++) { if(f[i][h]==0) a[i][h]=a[i-1][h]+a[i][h-1]; else a[i][h]=0; } } cout<<a[n][m]; // } ```
by drinktowind @ 2023-09-29 11:20:28


如果有用给一个关注谢谢喵
by drinktowind @ 2023-09-29 11:21:06


@[drinktowind](/user/719619) AC 了,thx,已关注
by jqQt0220 @ 2023-09-29 11:26:50


|