函数的魔法
函数的魔法
https://ac.nowcoder.com/acm/problem/21884
参考代码:
#include<bits/stdc++.h> #define inf 1000000007 using namespace std; int d[1000][1000]; int main(){ for (int i=0;i<233;i++) for (int j=0;j<233;j++) d[i][j]=inf; for (int i=0;i<233;i++){ d[i][(i*i*i+i*i)%233]=1; d[i][(i*i*i-i*i)%233]=1; } for (int k=0;k<233;k++) for (int i=0;i<233;i++) for (int j=0;j<233;j++) if (d[i][k]+d[k][j]<d[i][j]) d[i][j]=d[i][k]+d[k][j]; int tt;scanf("%d",&tt); for (;tt--;){ int a,b;scanf("%d%d",&a,&b); if (a==b) puts("0"); else if (b>=233) puts("-1"); else if (d[a%233][b]==inf) puts("-1"); else printf("%d\n",d[a%233][b]); } }