近期都是这样的题呢。

。。。。

開始想纯暴力(体如今跳出循环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的更多相关文章

  1. 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 ...

  2. 数论/暴力 Codeforces Round #305 (Div. 2) C. Mike and Frog

    题目传送门 /* 数论/暴力:找出第一次到a1,a2的次数,再找到完整周期p1,p2,然后以2*m为范围 t1,t2为各自起点开始“赛跑”,谁落后谁加一个周期,等到t1 == t2结束 详细解释:ht ...

  3. 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 ...

  4. hdu4135-Co-prime & Codeforces 547C Mike and Foam (容斥原理)

    hdu4135 求[L,R]范围内与N互质的数的个数. 分别求[1,L]和[1,R]和n互质的个数,求差. 利用容斥原理求解. 二进制枚举每一种质数的组合,奇加偶减. #include <bit ...

  5. codeforces 547E Mike and Friends

    codeforces 547E Mike and Friends 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define ...

  6. codeforces 689 Mike and Shortcuts(最短路)

    codeforces 689 Mike and Shortcuts(最短路) 原题 任意两点的距离是序号差,那么相邻点之间建边即可,同时加上题目提供的边 跑一遍dijkstra可得1点到每个点的最短路 ...

  7. codeforces #305 A Mike and Frog

    挺简单的题目,但是有一堆恶心的边界 在刨去恶心的边界之后: 假定我们知道两边的循环节为b1,b2 其中h第一次到达目标的时间为a1,a2 又知道对于答案t t=a1+b1*t1=a2+b2*t2 不妨 ...

  8. Codeforces 548B Mike and Fun

    传送门 B. Mike and Fun time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  9. Codeforces 798D Mike and distribution - 贪心

    Mike has always been thinking about the harshness of social inequality. He's so obsessed with it tha ...

随机推荐

  1. hdoj1160 FatMouse's Speed 动态规划

    FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. Django---MTV模型、基本命令、简单配置

    MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的时候 ...

  3. How to add elements to a List in Scala

    Scala List FAQ: How do I add elements to a Scala List? This is actually a trick question, because yo ...

  4. Qt入门-layout布局

    开发一个图形界面应用程序,界面的布局影响到界面的美观.在设计一个界面之前,应该考虑到开发的界面可能给不用的用户使用,而用户的屏幕大小.纵横比例.分辨率可能不同,界面还可能是可缩放的,程序应该可以适应这 ...

  5. tomcat事件处理机制

    最近在阅读“how tomcat works”这本书,结合tomcat7的源码进行学习.对于学习的收获,将通过“tomcat学习系列”记录下来,和大家一起分享和交流,也算对自己学习的一种促进.闲话不多 ...

  6. Hadoop计算中的Shuffle过程(转)

    Hadoop计算中的Shuffle过程 作者:左坚 来源:清华万博 时间:2013-07-02 15:04:44.0 Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解Ma ...

  7. 也来看看hadoop的WordCount

    其实这个例子都是书上的,我也只是拿过来理解学习下. WordCount是Hadoop中的Hello, world,这是我听得最多的一个表述. 下面是WordCount.java的源码 package ...

  8. [uart]理解线路规程的作用

    转自:http://biancheng.dnbcw.info/linux/336240.html Linux OS的设备驱动有相当经典的抽象思想以及分层思想.与通信世界里面的思想相一致. 一.在Lin ...

  9. drupal7请求异常,执行时间过长的解决方法

    drupal7请求错误,执行时间过长的解决办法 根据你的系统或网络设置Drupal不能读取网页,造成功能缺失.可能是web服务器配置或PHP设置引起的,可用更新.获取更新源.使用OpenID登 录或使 ...

  10. Mac中Java 配置maven及阿里云镜像

    一:配置maven 1.下载maven,选择Binary tar.gz,解压拷贝到目录/usr/local/ 1 https://maven.apache.org/download.cgi 2.配置系 ...