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 ...
随机推荐
- c#读excel 不用office组件
某日笔者写了个导入导出excel的小程序,拿给别人用时,别人说程序有问题读不了. 究其原因发现原来是using Microsoft.Office.Interop.Excel;引用出错.发现他装的off ...
- 重装Ubuntu系统
1.安装JDK参考:http://weixiaolu.iteye.com/blog/1401786jdk-6u31-linux-i586.bin莫名奇妙的安装失败.所以下载了jdk-7u45-linu ...
- 修改mysql root账户登录密码
打开mysql.exe(如果你配置了path的话,打开cmd即可)键入: mysqladmin -u root -p password [你的新密码][回车] 然后会要求你输入你当前的密码,就修改成功 ...
- Cookie application session
•Application 对象是存储于服务器的全局变量 •Cookie 存储信息于客户端 •Session 对象用于在服务器端存储用户的信息,在用户结束会话时被清除 1.将信息写入Cookies 中/ ...
- git学习(三):git暂存区
回顾之前学过的命令: git init // 初始化一个项目 git add // 将文件交给工作区 git commit // 提交修改 查看提交日志: git log // 查看提交日志 git ...
- 指针的引用(*&)与指针的指针(**)
指针的引用(*&)与指针的指针(**) 在下列函数声明中,为什么要同时使用*和&符号?以及什么场合使用这种声明方式? void func1( MYCLASS *&pBuildi ...
- Jdbc获取oracle中guid主键
上代码 String sql = "BEGIN insert into itil_task_plan (PLAN_CODE) values (?) returning id into ?; ...
- ubuntu如何修改字符集编码
系统支持编码的修改如下: 1. 使用如下命令查看系统支持的字符集cat /usr/share/i18n/SUPPORTED说明:查看系统支持的字符集,你需要注意的是支持字符集的格式,如对中文会有以下一 ...
- Userdata
我们首先关心的是如何在Lua中表示数组的值.Lua为这种情况提供专门提供一个基本的类型:userdata.一个userdatum提供了一个在Lua中没有预定义操作的raw内存区域. Lua API提供 ...
- 飞飞影视cms标签
解析范围: 全站所有模板均可调用 模板名称: 所有模板 调用函数: ff_mysql_vod(参数1:值1;参数2:值2;参数3,值3....;参数n,值n),支持的参数列表如下 * 以下变量名如$v ...