codeforces 547A Mike and Frog
近期都是这样的题呢。
。
。。。。
哎
開始想纯暴力(体如今跳出循环t>=那里。,,,)。。,。随着数据变大。。
。。。(t=499981500166是能够的),,,。。,,23333333
超时代码:
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int mod;
scanf("%lld",&mod);
long long int yuanshi1,mubiao1;
scanf("%lld%lld",&yuanshi1,&mubiao1);
long long int x1,y1;
scanf("%lld%lld",&x1,&y1);
long long int yuanshi2,mubiao2;
scanf("%lld%lld",&yuanshi2,&mubiao2);
long long int x2,y2;
scanf("%lld%lld",&x2,&y2);
long long int t=0;
while(yuanshi1!=mubiao1||yuanshi2!=mubiao2)
{
yuanshi1=(x1*yuanshi1+y1)%mod;
yuanshi2=(x2*yuanshi2+y2)%mod;
t++;
if(t>=50000000000)
{
printf("-1\n");
return 0;
}
}
printf("%lld\n",t);
return 0;
}
非常质朴啊。。。。
。
。
此题最深刻的教训是。
。。。以后别对变量瞎起名字!
!!
!
!!
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int mod;
scanf("%lld",&mod);
long long int yuanshi1,mubiao1;
scanf("%lld%lld",&yuanshi1,&mubiao1);
long long int x1,y1;
scanf("%lld%lld",&x1,&y1);
long long int yuanshi2,mubiao2;
scanf("%lld%lld",&yuanshi2,&mubiao2);
long long int x2,y2;
scanf("%lld%lld",&x2,&y2);
long long int k1=0,k2=0;
while(yuanshi1!=mubiao1&&k1<mod) //先算第一个满足的情况
{
yuanshi1=(x1*yuanshi1+y1)%mod;
yuanshi2=(x2*yuanshi2+y2)%mod;
k1++;
}
if(yuanshi1==mubiao1&&yuanshi2==mubiao2) //同一时候第二个也满足了
{
printf("%lld\n",k1);
return 0;
}
if(yuanshi1!=mubiao1) //假设跳出是由于大于了MOD那就没招了(题里给的!
)
{
printf("-1\n");
return 0;
}
long long int c=1;
yuanshi1=(yuanshi1*x1+y1)%mod;
long long int x=x2,y=y2;
while(yuanshi1!=mubiao1&&c<=mod) //找两个循环的最小公倍数。。。。
。。
{
yuanshi1=(yuanshi1*x1+y1)%mod;
x=(x*x2)%mod;
y=(x2*y+y2)%mod;
c++;
}
if(yuanshi1!=mubiao1)
{
printf("-1\n");
return 0;
}
while(yuanshi2!=mubiao2&&k2<=mod){
yuanshi2=(yuanshi2*x+y)%mod;
k2++;
}
if(yuanshi2!=mubiao2){
printf("-1\n");
return 0;
}
printf("%lld\n",k2*c+k1);
return 0;
}
还可以用拓展欧几里得。。
。。。
。
假设这个线性方程有解,那么一定有gcd(a,b) | m。即a。b的最大公约数可以整除m(m%gcd(a,b)==0)。
codeforces 547A Mike and Frog的更多相关文章
- Codeforces Round #305 (Div. 1) A. Mike and Frog 暴力
A. Mike and Frog Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/547/pr ...
- 数论/暴力 Codeforces Round #305 (Div. 2) C. Mike and Frog
题目传送门 /* 数论/暴力:找出第一次到a1,a2的次数,再找到完整周期p1,p2,然后以2*m为范围 t1,t2为各自起点开始“赛跑”,谁落后谁加一个周期,等到t1 == t2结束 详细解释:ht ...
- CF #305 (Div. 2) C. Mike and Frog(扩展欧几里得&&当然暴力is also no problem)
C. Mike and Frog time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- hdu4135-Co-prime & Codeforces 547C Mike and Foam (容斥原理)
hdu4135 求[L,R]范围内与N互质的数的个数. 分别求[1,L]和[1,R]和n互质的个数,求差. 利用容斥原理求解. 二进制枚举每一种质数的组合,奇加偶减. #include <bit ...
- codeforces 547E Mike and Friends
codeforces 547E Mike and Friends 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define ...
- codeforces 689 Mike and Shortcuts(最短路)
codeforces 689 Mike and Shortcuts(最短路) 原题 任意两点的距离是序号差,那么相邻点之间建边即可,同时加上题目提供的边 跑一遍dijkstra可得1点到每个点的最短路 ...
- codeforces #305 A Mike and Frog
挺简单的题目,但是有一堆恶心的边界 在刨去恶心的边界之后: 假定我们知道两边的循环节为b1,b2 其中h第一次到达目标的时间为a1,a2 又知道对于答案t t=a1+b1*t1=a2+b2*t2 不妨 ...
- Codeforces 548B Mike and Fun
传送门 B. Mike and Fun time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces 798D Mike and distribution - 贪心
Mike has always been thinking about the harshness of social inequality. He's so obsessed with it tha ...
随机推荐
- cvs history,CVS中查询目录下所有文件的提交记录
我们习惯用eclipse svn中查看一个目录下,甚至整个工程下,所有的文件的变更列表:操作为:右键工程 -> Team -> Show History. 最近在使用CVS,eclipse ...
- solr学习之一 搜索基本知识
学习了一段时间的solr了,用自己的方式总结下目前学到的内容,这是个系列文章,这里面的有些说法可能不准确,也可能有问题 欢迎大家指正. 一.搜索引擎目的 搜索引擎在我们的生活中,已经无处不在,除了我们 ...
- 编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]
编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本] 1. 开发环境 Jdk 1.7.0_72 Maven 3.2.1 Scala 2.10.6 Spark 1.6 ...
- 【转】Hive SQL的编译过程
Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析.Hive的稳定性和 ...
- 简单的java程序
1.二分查找,java的输入与输出 package com; public class Firstapp{ public static void main(String args[]) { java. ...
- java Map & List 遍历
一.Map 遍历 public static void main(String[] args) { Map<String, String> map = new HashMap<Str ...
- 【Unity笔记】物体朝着鼠标位置移动
其实思路也很简单,就是先获取到鼠标的坐标,然后赋值给目标物体即可. void Update(){ // 物体跟随鼠标移动 Vector2 mousePos = Input.mousePosition; ...
- Android——ImageView的scaleType属性与adjustViewBounds属性 (转)二
1 android:scaleType="center" (1)当图片大于ImageView的宽高:以图片的中心点和ImageView的中心点为基准,按照图片的原大小居中显示,不缩 ...
- linux内存查看及释放
查看内存 常用的查看内存工具有:top,ps,free,/proc/meminfo,/proc/$PID/status等,一般都指定了虚拟内存占用情况,但ps或/proc/$PID/status中RS ...
- 【springmvc笔记】第二课 环境搭建和第一个springmvc例子
1. 开发工具准备 eclipse + jdk1.7 spring-framework-4.3.9.RELEASE 2. 新建Dynamic Web Project项目,命名为springmvc. 3 ...