题目Out of Sorts
一个二分水题
挺简单的,就当复习二分了233
代码如下
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
const int inf=0x3f3f3f3f;
int x[maxn];
int main()
{
int ans=0;
unsigned long long m,a,c;
int n;
int s;
cin>>n>>m>>a>>c>>x[0];
for(int i=1;i<=n;i++)
x[i]=(a*x[i-1]+c)%m;
for(int i=1;i<=n;i++)
{
int l=1,r=n,k=x[i];
while(l<=r)
{
int mid=(l+r)/2;
if(x[mid]==k)
{
ans++;
break;
}
else if(x[mid]>k)
r=mid-1;
else if(x[mid]<k)
l=mid+1;
}
}
cout<<ans;
}