正题

题目链接:https://jzoj.net/senior/#contest/show/3011/0


题目大意

给出n,m,a,b,c,x0n,m,a,b,c,x_0n,m,a,b,c,x0​
xi=axi−12+bxi−1+cx_i=ax_{i-1}^2+bx_{i-1}+cxi​=axi−12​+bxi−1​+c

求xn%mx_n\%mxn​%m


解题思路

第一段n≤1e6n\leq 1e6n≤1e6直接O(n)O(n)O(n)暴力做
第二段m≤1e6m\leq 1e6m≤1e6找到一个循环节然后在套到n里
第三段:
xi=axi−12+bxi−1+cx_i=ax_{i-1}^2+bx_{i-1}+cxi​=axi−12​+bxi−1​+c
学过二次函数的对于给出的性质有敏锐的直觉
xi=a(x+b2a)2+4ac−b24ax_i=a(x+\frac{b}{2a})^2+\frac{4ac-b^2}{4a}xi​=a(x+2ab​)2+4a4ac−b2​
4ac=b2−2b⇒4ac−b2=2b4ac=b^2-2b\Rightarrow 4ac-b^2=2b4ac=b2−2b⇒4ac−b2=2b
xi=a(x+b2a)2−b2ax_i=a(x+\frac{b}{2a})^2-\frac{b}{2a}xi​=a(x+2ab​)2−2ab​
然后定义k=b2ak=\frac{b}{2a}k=2ab​
xi+k=a(x+k)2x_i+k=a(x+k)^2xi​+k=a(x+k)2
同时乘上aaa
a(xi+k)=(a(x+k))2a(x_i+k)=(a(x+k))^2a(xi​+k)=(a(x+k))2
定义yi=a(xi+k)y_i=a(x_i+k)yi​=a(xi​+k)
那么有yi=yi−12y_i=y_{i-1}^2yi​=yi−12​
即yn=y02ny_n=y_{0}^{2^n}yn​=y02n​

用费马小可以让指数摸上m−1m-1m−1计算出yny_nyn​,然后倒推出xnx_nxn​


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll M=1e6+10;
ll n,m,a,b,c,x,fa[M],cir[M],v[M];
void solve1(){for(ll i=1;i<=n;i++)x=(a*x%m*x%m+b*x%m+c)%m;printf("%lld",x);
}
void solve2(){x%=m;for(ll i=0;i<=m;i++)fa[i]=(a*i%m*i%m+b*i%m+c)%m;ll cnt=0;cir[0]=x;v[x]=1;while(!v[x=fa[x]])cir[++cnt]=x,v[x]=cnt;x=v[x];if(n<=cnt) printf("%lld",cir[n]);else{n-=x;printf("%lld",cir[x+n%(cnt-x+1)]);}
}
ll power(ll x,ll b,ll p){ll ans=1;while(b){if(b&1) ans=ans*x%p;x=x*x%p;b>>=1;}return ans;
}
void solve3(){ll z=b/2/a,y=a*(x+z)%m;y=power(y,power(2,n,m-1),m);printf("%lld",(y*power(a,m-2,m)%m-z+m)%m);
}
int main()
{scanf("%lld%lld%lld%lld%lld%lld",&x,&a,&b,&c,&n,&m);x=x%m;a%=m;b%=m;c%=m;if(n<=1e6)solve1();else if(m<=1e6)solve2();else solve3();
}

jzoj4015-数列【循环节,数论】相关推荐

  1. 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】...

    链接:https://www.nowcoder.com/acm/contest/93/K 来源:牛客网 题目描述 wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F ...

  2. 广义Fibonacci数列找循环节

    今天将来学习如何求广义Fibonacci数列的循环节. 问题:给定,满足,求的循 环节长度. 来源:http://acdreamoj.sinaapp.com/ 1075题   分析:我们知道矩阵的递推 ...

  3. luogu 1327 数列排序 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 J题 循环节

    luogu 1327 数列排序 题意 给定一个数列\(\{an\}\),这个数列满足\(ai≠aj(i≠j)\),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? ...

  4. 牛客 - 交换(思维+找循环节)

    题目链接:点击查看 题目大意:给出一个数列 n ,要求通过交换使其从小到大排序的最小次数 题目分析:第一反应是求逆序对,把之前做过的题目贴过来结果只过了 10% ,静下心来又读了一下题,发现这个题目要 ...

  5. Fib数模n的循环节

    我们知道Fibonacci数列,现在我们来求一个Fib数模n的循环节的长度. 对于一个正整数n,我们求Fib数模n的循环节的长度的方法如下: (1)把n素因子分解,即 (2)分别计算Fib数模每个的循 ...

  6. UVa 202 - Repeating Decimals —— 分数循环节

    题目:计算分数的循环节. https://vjudge.net/contest/227853#problem/C 分析:数论,组合. n除以m的余数只能是0~m-1,根据抽屉原则,当计算m+1次时至少 ...

  7. 51Nod - 1035 最长的循环节

    51Nod - 1035 最长的循环节 正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,假如存在多个最优的答案,输出所有 ...

  8. hdu 3374 String Problem (字符串最小最大表示 + KMP求循环节)

    Problem - 3374 KMP求循环节. http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html 循环节推导的证明相当的好,这 ...

  9. 输出1/n(是循环小数的,只输出第一个循环节)

    Input 第一行整数T,表示测试组数.后面T行,每行一个整数 n (1<=|n|<=10^5). Output 输出1/n. (是循环小数的,只输出第一个循环节). Sample Inp ...

最新文章

  1. 什么是LinkedList?什么时候使用它呢?Java LinkedList结构、用法及源码解析
  2. 数量庞大!中国成长型AI企业研究报告
  3. 华为存储iscsi配置_iscsi 华为存储配置 上课内容
  4. java服务端同时接收和发送_如何实现客户端接收数据和发送数据的同步?
  5. 遇到automation服务器不能创建对象...
  6. python编程从入门到精通读书笔记(基础知识)
  7. Magic进博会!中国媒体上马了一条神奇的视频生产线
  8. [整理]CHttpConnection的使用
  9. Shell之分支结构和循环结构
  10. 云计算成了“晕技术”就对了
  11. 电子计算机 电子工程 职称,电子信息工程师职称评定
  12. 基于 InVEST 模型的水涵养功能评估数据获取
  13. 计算机仿真是北大核心期刊,计算机仿真 北大核心期刊统计源期刊 CSCD核心期刊...
  14. 腾讯 信鸽测试demo
  15. 《UnityAPI.GameObject游戏对象》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+isStatic+SendMessage+Find+立钻哥哥++OK++)
  16. Tri Tiling·递推
  17. android svg 线条动画教程,简单的SVG线条动画
  18. M1芯片的Mac上iPhone虚拟机滚动过快的问题
  19. 软件设计师选择题真题知识点归纳
  20. Halcon 网格缺陷检测

热门文章

  1. win2003无法进入桌面_救急,如何通过命令行备份桌面重要文件?
  2. 参加计算机竞赛需要学什么知识,数学和计算机专业,我应该参加那些比赛?
  3. python安装地是什么_如何安装python
  4. linux配置文件引用时间,linux时间设置、screen使用、命令分类、hash作用、命令引用及history命令...
  5. 算法——常用的数据结构/模板/基础知识
  6. 王某调离岗位后所使用计算机由新到任陈某,2017年沧州事业单位考试模拟卷
  7. 太平洋大西洋水流问题如何解决?一文了解图在前端中的应用
  8. java numberformat异常_Java NumberFormat格式化float类型的bug
  9. Adapter(适配器)--类对象结构型模式
  10. 番茄时间有感之关于在疫情期间我与ACM不得不说的故事