建设企业网站怎么样,全国学校信息查询官网,免费做网站哪里有,免费的短视频软件app下载用short类型二维数组防止MLE。这里用的记忆化搜索#xff0c;如果f[x][y]已经有值了#xff0c;直接返回这个值。判断error的方法#xff1a;如果下一次又访问到它#xff0c;说明出现了循环#xff0c;这样是永远%不到0的#xff0c;所以#xff0c;第一次访问一次f[x]…用short类型二维数组防止MLE。这里用的记忆化搜索如果f[x][y]已经有值了直接返回这个值。判断error的方法如果下一次又访问到它说明出现了循环这样是永远%不到0的所以第一次访问一次f[x][y]就给它赋值-1如果下一次又访问到f[x][y]-1直接return -1输出error
ACcode:(有T组数据但是mod只有一个。很显然这道题可以用记忆化搜索嘛)
#includebits/stdc.h
using namespace std;
//#define int long long
const int N1e410;
int x,y,mod;
short f[N][N];
int dfs(int x,int y){if(f[x][y]-1) return -1;if(f[x][y]!0) return f[x][y];f[x][y]-1;if(x0) return f[x][y]1;if(y0) return f[x][y]2;return f[x][y]dfs(((xy)%mod),((xy)%mody)%mod);
}
void solve() {cinxy;int ansdfs(x,y);if(ans-1) couterror\n;else coutans\n;
}
signed main() {ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int tt1;cinttmod;while(tt--)solve();return 0;
}