记忆化写的,全WA,求助

P1002 [NOIP2002 普及组] 过河卒

o对啊
by Cedric_Cedris @ 2023-08-10 11:05:42


@[Cedric_Cedris](/user/1059487) 这是我修改后的方向数据,你可以对比一下 ``` int dx[9]={0,-1,-2,-2,-1,1,2, 2, 1}; int dy[9]={0,-2,-1,1, 2,2,1,-1,-2}; ```
by 编码落寞 @ 2023-08-10 11:05:58


@[编码落寞](/user/557751) 改了,但是只有40分 ``` #include<bits/stdc++.h> using namespace std; const int maxN=8; int dx[9]={0,-1,-2,-2,-1,1,2,2,1}; int dy[9]={0,-2,-1,1,2,2,1,-1,-2}; long long bx, by, mx, my, f[25][25]; long long dfs(int x,int y) { if(f[x][y]) { return f[x][y]; } if(x == 0 || y == 0) { return 1; } if(x < -2 || y < -2) { return 0; } for(int i = 0; i <= maxN; i++) { if(x == mx + dx[i] && y == my + dy[i]) { return 0; } } return f[x][y] = dfs(x - 1, y) + dfs(x, y - 1); } int main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>bx>>by>>mx>>my; cout<<dfs(bx, by); return 0; } ```
by Cedric_Cedris @ 2023-08-10 11:09:01


@[Cedric_Cedris](/user/1059487) 代码逻辑部分没太看懂
by 编码落寞 @ 2023-08-10 11:28:15


@[编码落寞](/user/557751) 额,不就是递推加记忆化吗
by Cedric_Cedris @ 2023-08-10 11:53:22


@[Cedric_Cedris](/user/1059487) 在你代码基础上改的 ``` #include<bits/stdc++.h> using namespace std; const int maxN=8; int dx[9]={0,-1,-2,-2,-1,1,2,2,1}; int dy[9]={0,-2,-1,1,2,2,1,-1,-2}; long long bx, by, mx, my, f[25][25]; long long dfs(int x,int y) { if(x < 0 || y < 0) { return 0; } if(f[x][y]) { return f[x][y]; } if(x == 0 && y == 0) { return 1; } for(int i = 0; i <= maxN; i++) { if(x == mx + dx[i] && y == my + dy[i]) { return 0; } } return f[x][y] = dfs(x - 1, y) + dfs(x, y - 1); } int main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>bx>>by>>mx>>my; cout<<dfs(bx, by); return 0; } ```
by 编码落寞 @ 2023-08-10 13:09:50


@[编码落寞](/user/557751) 感激不尽
by Cedric_Cedris @ 2023-08-10 17:47:52


上一页 |