4 条题解
- 
  0
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN=2200000,Mod=2181271; int Hash[MAXN]; struct P{ ll val; int next; }p[MAXN]; bool Count(int pos,ll x){ for(int i=Hash[pos]; i ;i = p[i].next) if(p[i].val == x) return 1; return 0; } int A,B,C; int main(){ ll a = 1; Hash[1] = p[1].val = 1; scanf("%d%d%d",&A,&B,&C); for(int i=1;i<=2000000;i++){ a=(a*A+a%B)%C; int pos=a%Mod; if(Count(pos,a)){ printf("%d\n",i); return 0; } p[i+1]={a,Hash[pos]}; Hash[pos]=i+1; } printf("-1\n"); return 0; } 
信息
- ID
 - 7
 - 时间
 - 1000ms
 - 内存
 - 16MiB
 - 难度
 - 4
 - 标签
 - 递交数
 - 412
 - 已通过
 - 205
 - 上传者