40分,help me

P1002 [NOIP2002 普及组] 过河卒

我本来还以为会TLE,没想到一个RE,两个WA,无语
by shenyeting @ 2024-02-02 16:23:36


没开long long:[测试点](https://www.luogu.com.cn/record/145798063) 开了long long:[测试点](https://www.luogu.com.cn/record/145798352)
by shenyeting @ 2024-02-02 16:26:18


``` #include<bits/stdc++.h> using namespace std; long long a[100][100]; int dx[8]={-2,-2,-1,1,2,2,1,-1},dy[8]={-1,1,2,2,1,-1,-2,-2}; bool b[100][100]; int main(){ int wx,wy,mx,my; cin>>wx>>wy>>mx>>my; for(int i=0;i<=wx;i++){ for(int j=0;j<=wy;j++){ a[i][j]=0; b[i][j]=true; } } b[mx][my]=false; for(int i=0;i<8;i++){ if(mx+dx[i]<=wx&&mx+dx[i]>=0&&my+dy[i]<=wy&&my+dy[i]>=0){ b[mx+dx[i]][my+dy[i]]=false; } } for(int i=0;i<=wx;i++){ if(!b[0][i]){ break; } a[0][i]=1; } for(int i=0;i<=wy;i++){ if(!b[i][0]){ break; } a[i][0]=1; } for(int i=0;i<=wx;i++){ for(int j=0;j<=wy;j++){ if(b[i-1][j]&&b[i][j-1]){ a[i][j]=a[i-1][j]+a[i][j-1]; } else{ if(!b[i-1][j]&&b[i][j-1]){ a[i][j]=a[i][j-1]; } else{ if(b[i-1][j]&&!b[i][j-1]){ a[i][j]=a[i-1][j]; } } } } } cout<<a[wx][wy]; } ``` 小改了一下
by Tommyshizichen @ 2024-02-02 17:00:14


栓Q
by shenyeting @ 2024-02-03 09:43:59


怎么把a数组改成long long就行了
by shenyeting @ 2024-02-03 09:49:00


@[shenyeting](/user/1035926) 不开会爆,会出现负数
by wu_114514 @ 2024-02-03 22:44:20


|