1 条题解
-
0
C++ :
#include<cstdio> #include<cstring> #include<algorithm> #define mod 1222 typedef long long ll; using namespace std; ll n,m,a,b,c,d; ll x,y; ll px[5010]; ll qy[5010]; ll f[5010]; int quick_pow(int x,int k){ int ans=1; while(k>0){ if(k&1){ ans=ans*x%mod; } x=x*x%mod; k>>=1; } return ans%mod; } int main(){ //freopen("ysh.in","r",stdin); //freopen("ysh.out","w",stdout); memset(qy,0,sizeof(qy)); memset(px,0,sizeof(px)); px[1]=1;qy[1]=1; scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%lld%lld",&x,&y); int tot=0; for(int j=0;j<=y;++j){ tot+=quick_pow(x,j)%mod; } px[1]*=tot; px[1]%=mod; } scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%lld%lld",&x,&y); int tot=0; for(int j=0;j<=y;++j){ tot+=quick_pow(x,j)%mod; } qy[1]*=tot; qy[1]%=mod; } scanf("%lld%lld%lld%lld",&a,&b,&c,&d); scanf("%lld",&m); for(int i=2;i<=m;++i){ px[i]=(a*px[i-1]*px[i-1]%d+b*px[i-1]%d+c%d)%d; qy[i]=(a*qy[i-1]*qy[i-1]%d+b*qy[i-1]%d+c%d)%d; } /* for(int i=1;i<=m;++i){ cout<<px[i]<<" "; } cout<<endl; for(int i=1;i<=m;++i){ cout<<qy[i]<<" "; } cout<<endl; */ for(int i=1;i<=m;++i){ int maxx=0; for(int j=1;j<=m;++j){ if(px[i]>qy[j]&&f[j]>maxx){ maxx=f[j]; } if(px[i]==qy[j]&&f[j]<maxx+1){ f[j]=maxx+1; } } } sort(f+1,f+m+1); printf("%lld",f[m]); fclose(stdin); fclose(stdout); }
- 1
信息
- ID
- 1025
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者