CodeForces 547A--找循环节
来源:互联网 发布:土木工程翻译软件 编辑:程序博客网 时间:2024/06/05 22:42
题意:
给青蛙和花浇水,,每浇一次水,青蛙的高度变成 (x1*h1+y1)%m ,花的高度变成 (x2*h2+y2)%m,问至少经过多少步花和青蛙的高度等于相应的高度?
输入:
54 21 10 12 3
10231 21 01 21 1
输出:
3-1
分析:
两者都不能到达相应高度:输出-1;
两者同时到达相应高度,输出任意一个;
不同时,假设其中一个先到,记录他走的步数,将当前的步数作为起点继续下面的步数,下面走的就是循环,并算出循环
的长度,如果在这期间,晚到的那个恰好等于早到加循环走的步数,则输出晚到的步数,否则,则输出-1.
代码:#include <bits/stdc++.h>using namespace std;int main(){ //找循环 int flag = 0; long long int m,h1,h2,a1,a2,x1,x2,y1,y2; long long int i,j,k; long long int p1,r1,p2,r2; p1 = p2 = r1 = r2 = -1; cin >>m; cin >>h1>>a1>>x1>>y1; cin >>h2>>a2>>x2>>y2; for(i = 1; i<=2*m; i++) //循环2m次为了找到循环长度为m循环 { h1 = (h1*x1+y1)%m; if(h1 == a1) //可达 { if(p1 == -1) //第一次到达 p1 = i; //记录步数,以当前p1为起点,继续走。 else if(r1 == -1) r1 = i-p1; // 循环长度,当前步数减起点位置 } h2 = (h2*x2+y2)%m; if(h2 == a2) { if(p2 == -1) p2 = i; else if(r2 == -1) r2 = i-p2; } } if(p1==-1||p2==-1) //未达 printf("-1\n"); else if(p1 == p2) //同时达到 printf("%I64d\n",p1); else //不同时 { for(i = 1; i<=2*m; i++) { if(p1<p2) p1+=r1; //加上循环长度 else p2+=r2; if(p1==p2) { printf("%I64d\n",p1); return 0; } } printf("-1\n"); } return 0;}
0 0
- CodeForces 547A--找循环节
- Codeforces 547 Div1 A. Mike and Frog(找循环节)
- codeforces 362A找规律
- HDU4611(找循环节)
- 找循环节
- KMP找循环节
- CodeForces 634A-Island Puzzle【找规律】
- codeforces-752【A找规律】【set+pair】
- Codeforces 492D Vanya and Computer Game 循环节找规律
- Codeforces Round #392 (Div. 2)C. Unfair Poll(找循环节)
- poj2406 找最小循环节
- hdu_5690_All X(找循环节)
- hdu1358Period(nxt找循环节)
- hdu1021(找规律,循环节)
- hdu 4291 A Short problem 矩阵快速幂,找循环节
- hdoj 4291 A Short problem 【找循环节 + 矩阵快速幂】
- CodeForces 603A Alternative Thinking(找规律)
- CodeForces-630A. Again Twenty Five!【找规律】
- 置顶,关于我的博客文章说明
- CentOS7 安装tomcat7.x为系统服务器 Systemctl管理Tomcat
- iOS NSIvocation的简介与使用
- 几何画板调用计算器的方法是这样的
- Android存储方式-SharedPreferences
- CodeForces 547A--找循环节
- 微信扫码登陆过程。
- 2016年7月编程语言排行榜
- Myeclipse2014找不到Help-->install new software
- 【Android】GreenDao操作外部DB数据库文件
- java反射基础知识汇总
- 系统代码中增加APK
- javascript,对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
- Java性能优化指南系列(三):理解JIT编译器