Codeforces Round #305 (Div. 1) A. Mike and Frog(数学)
来源:互联网 发布:mac系统安装flash 编辑:程序博客网 时间:2024/04/27 12:11
题目地址:http://codeforces.com/problemset/problem/547/A
思路:找循环节。%m的余数有m种,pos1表示a1第一次出现的时间,pos2表示a2第一次出现的时间,l1表示第一个循环长度,l2表示第二个循环长度。循环节长度最大为m,所以最大需模拟2*m次,pos1<pos2时pos1+=l1,反之pos2+=l2。若pos1==pos2,则输出,退出。
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int m,h1,a1,x1,y1,h2,a2,x2,y2;int main(){ scanf("%d",&m); scanf("%d%d%d%d",&h1,&a1,&x1,&y1); scanf("%d%d%d%d",&h2,&a2,&x2,&y2); long long pos1=-1,l1=-1; long long pos2=-1,l2=-1; for(int i=1; i<=2*m; i++) { h1=((long long)h1*x1+y1)%m; if(h1==a1) { if(pos1==-1) pos1=i; else if(l1==-1) l1=i-pos1; } } for(int i=1; i<=2*m; i++) { h2=((long long)h2*x2+y2)%m; if(h2==a2) { if(pos2==-1) pos2=i; else if(l2==-1) l2=i-pos2; } } if(pos1==-1||pos2==-1) printf("-1\n"); else { if(pos1==pos2) printf("%I64d\n",pos1); else { for(int i=1; i<=2*m; i++) { if(pos1<pos2) pos1+=l1; else pos2+=l2; if(pos1==pos2) { printf("%I64d\n",pos1); exit(0); } } printf("-1\n"); } } return 0;}
0 0
- Codeforces Round #305 (Div. 1) A. Mike and Frog(数学)
- Codeforces Round #305 (Div. 2)C. Mike and Frog 数学(循环节)
- Codeforces Round #305 (Div. 2) C. Mike and Frog
- Codeforces Round #305 (Div. 2) C. Mike and Frog
- Codeforces Round #305 (Div. 1)C. Mike and Foam 数学
- 547A . Mike and Frog(codeforces Round 305)
- Codeforces Round #305 (Div. 2) C. Mike and Frog +B. Mike and Fun
- Codeforces Round #305 C. Mike and Frog
- 【CodeForces】A. Mike and Frog
- Codeforces Round #305 (Div. 2)C---Mike and Frog(扩欧+乱搞)
- Codeforces Round #305 (Div. 2) 548C - Mike and Frog 循环节
- Codeforces Round #305 (Div. 2) A. Mike and Fax
- Codeforces Round #305 (Div. 2), problem: (A) Mike and Fax
- Codeforces Round #305 (Div. 2)--A. Mike and Fax
- Codeforces Round #305 (Div. 2)A. Mike and Fax
- Codeforces Round #305 (Div. 1) B. Mike and Feet
- Mike and Frog - CodeForces #547 A
- CodeForces 547A Mike and Frog
- Ubuntu16.04安装串口调试工具gtkterm
- ScrollerView中嵌套多个ListView,ListView都展示出
- 顺序表应用3:元素位置互换之移位算法
- Marching Cubes
- 前清时期坐过堂
- Codeforces Round #305 (Div. 1) A. Mike and Frog(数学)
- android studio 提高编译的速度,安装apk过慢问题解决
- 警告 libpng warning: iCCP: known incorrect sRGB profile
- 自适应布局,响应式布局以及rem,em区别
- Android Material Design系列之主题样式介绍说明等
- windows下eclipse连接hadoop
- 删数
- Android 画波纹进度条
- 数据结构实验之二叉树七:叶子问题