E - X-Sequence

Time Limit:500MS     Memory Limit:4096KB     64bit IO Format:%I64d
& %I64u

Description

Let {xi} be the infinite sequence of integers: 

1) x0 = A; 

2) xi = (alpha * xi-1^2 + beta * xi-1 + gamma) mod M, for i >= 1. 

Your task is to find xk if you know A, alpha, beta, gamma, M and k.

Input

Given A (1 <= A <= 10000), alpha (0 <= alpha <= 100), beta (0 <= beta <= 100), gamma (0 <= gamma <= 100), M (1 <= M <= 1000), k (0 <= k <= 10^9). All numbers are integer.

Output

Write xk.

Sample Input



Input

1 1 1 1 10 1
Output

3

题意:

令X0=A

Xi=(a*Xi-1^2,b*Xi-1+c)%m;

求Xk,(0<=k<=109),(0<=a,b<=100),(1<m<1000);


Solution:

题目的关键在于m的范围,1000的范围显然是会在取余后出现循环的。

只要得出循环的数列的长度以及它的每一个数,和任意一个循环的起点位置。就可以算出X值。

要注意的是X是不对m取余的,还有当X0很大时,计算X的中间量是有可能超过int范围的。

code:

#include<stdio.h>
#include<string.h>
int main()
{
int A, alpha, beta, gamma, M , k;
int loop,i,t;
int num[1010];
int visit[10100];//注意这里要开10000+虽然用的个数不超过1000个只是因为A<=10000
//visit用来标记是否num[i]的值是否出现过即visit[num[i]]是否是-1
//因为M<1000 所以会在至多1000个数开始出现循环
while(~scanf("%d%d%d%d%d%d",&A,&alpha,&beta,&gamma,&M,&k))
{ memset(visit,-1,sizeof(visit));
num[0]=A;visit[A]=0;
for(i=1;;i++)
{
num[i]=alpha*num[i-1]%M*num[i-1]%M+beta*num[i-1]%M+gamma%M;
num[i]%=M;
if(visit[num[i]]!=-1){
/* loop=i; //i 个开始出现循环 k(i)(visit[num[i]])= 0 1 2 3 4 5 6 7
注意这里这样是错的, 它循环可能是中间出现循环如 (num[i]) 9 7 8 4 5 6 8 4 (6-2)
所以这样记录的个数不是i个, 固修改如下
*/
loop=i-visit[num[i]]; //这样loop正好为循环个数
t=visit[num[i]];//表示循环列前面还有的个数
break;
}
else visit[num[i]]=i; // }
if(k<visit[num[i]])printf("%d\n",num[k]); //如果k未出现循环
else printf("%d\n",num[(k-t)%loop+t]); } return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

SGU 181 X-Sequence(一题比较水的求模找规律)的更多相关文章

  1. HDOJ1021题 Fibonacci Again 应用求模公式

    Problem Description There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) ...

  2. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

  3. 每日一刷(2018多校水题+2016icpc水题)

    11.9 线段树 http://acm.hdu.edu.cn/showproblem.php?pid=6315 求逆序对个数 http://acm.hdu.edu.cn/showproblem.php ...

  4. SGU 107 987654321 problem【找规律】

    题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=107 题意: 平方后几位为987654321的n位数有多少个 分析: 虽然说是水题 ...

  5. 暑假集训 #3div2 C Sequence 数字找规律

    C. Sequence (64 Mb, 1 sec / test)Integer sequences are very interesting mathematical objects. Let us ...

  6. 找规律 SGU 126 Boxes

    题目地址:http://acm.sgu.ru/problem.php?contest=0&problem=126 /* 找规律,智商不够,看了题解 详细解释:http://blog.csdn. ...

  7. HDU1005Number Sequence(找规律)

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. HDU 4572 Bottles Arrangement(找规律,仔细读题)

    题目 //找规律,123321123321123321…发现这样排列恰好可以错开 // 其中注意题中数据范围: M是行,N是列,3 <= N < 2×M //则猜测:m,m,m-1,m-1 ...

  9. hdu 1005 Number Sequence(矩阵快速幂,找规律,模版更通用)

    题目 第一次做是看了大牛的找规律结果,如下: //显然我看了答案,循环节点是48,但是为什么是48,据说是高手打表出来的 #include<stdio.h> int main() { ], ...

随机推荐

  1. 15JavaScript switch语句

    1.JavaScript switch 语句 使用 switch 语句来选择要执行的多个代码块之一. 语法: switch(n) { case 1: 执行代码块 1 break; case 2: 执行 ...

  2. JavaWeb开发使用jsp还是html做前端页面

    一.概述 刚开始学习Javaweb开发的小伙伴都有一个疑惑:用jsp开发前端还是用HTML开发前端呢? 这个疑惑的来源主要是:刚接触完前端但又不深入学习js,接着学习jsp,发现老师们都一直用着jsp ...

  3. GCC编译器基础入门

    导语 GCC(GNU Compiler Collection,GNU 编译器套件) 是由 GNU 开发的编程语言编译器,支持C.C++.Objective-C.Fortran.Java.Ada和Go语 ...

  4. hadoop errors

    1.taskTracker和jobTracker 启动失败 2011-01-05 12:44:42,144 ERROR org.apache.hadoop.mapred.TaskTracker: Ca ...

  5. 2017-2018-1 20155318《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155318<信息安全技术>实验二--Windows口令破解 一.实验原理 口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对 ...

  6. 20155319 2016-2017-2 《Java程序设计》第一周学习总结

    20155319 2016-2007-2 <Java程序设计>第一周学习总结 考核方式 翻转课堂考核12次(5*12=60):每次考试20-30道题目,考试成绩规格化成5分(如总分20分就 ...

  7. 20155322 《Java程序设计》课堂实践项目 数据库-3-4

    20155322 <Java程序设计>课堂实践项目 数据库-3-4 数据库-3 实践要求 参考教材代码完成下面的要求,提交能连接到world的截图(有学号水印),并提交代码的码云链接.查询 ...

  8. 再装虚拟机及git

    再装虚拟机及git 问题1:在假期的学习中并没有上传代码的习惯,到了开学要用到的时候发现新建的目录无法git到码云上,当时也没有在意,直到老师问我要代码链接才意识到这个问题. 问题2:在按照老师的博客 ...

  9. mfc通过MapWinGIS控件读取shp文件(不通过#import实现)

    1.首先注册MapWinGIS ActiveX组件, 引入MapWinGIS.ocx产生的MapWinGIS_i.h和MapWinGIS_i.c文件,利用CoCreateInstance函数来调用 演 ...

  10. zabbix最新版3.4搭建(根据官方文档适当修改)

    操作系统:CentOS Linux release 7.4.1708 (Core) 1.安装apache 1.1 安装apache yum install httpd httpd-devel 1.2 ...