CSUSTOJ-藤原书记的佩斯(简单数学)
题目连接:http://acm.csust.edu.cn/problem/4056
博客园食用链接: https://www.cnblogs.com/lonely-wind-/p/13941868.html
Description
藤原书记家养了一只金毛的佩斯,佩斯有着能和白银匹敌的智商,并且非常喜欢数学和编程。
这天佩斯在外面玩耍的时候碰到了一圈石头, 总共有 nnn 个 ,它把这 nnn 个石头从 000 到 n−1n - 1n−1 顺时针编号,现在佩斯处于第 000 号石头上,佩斯会在石头上顺时针跳跃,并且每次跳的距离固定为 kkk ,假设佩斯当前的位置的石头编号为 pospospos ,那么它下一块所处的石头编号为 (pos+k)%n(pos + k) \% n(pos+k)%n。比如当 n=12,k=4n = 12, k = 4n=12,k=4 时,佩斯所处石头的编号按跳跃顺序则是 0,4,8,0,4....0, 4, 8, 0, 4....0,4,8,0,4.... ,它会无穷无尽一直跳下去。佩斯记录下了它从开始游戏后经过的所有石头的编号集合(不含重复编号),但一不小心忘记了编号原本的出现顺序。它想请你计算出有多少个符合条件的 kkk 能使得它最终经过的编号集合与所记录的吻合。
注:编号集合中不含重复元素,只要两个编号集合内的元素相同(不考虑顺序),即说明二者吻合。
input
第一行输入n,mn,mn,m,满足2≤m≤n≤1000002≤m≤n≤1000002≤m≤n≤100000,
第二行mmm个整数,代表得到的石头编号,满足第 iii 个整数 0≤ai≤n−1,ai≥ai−10≤a_i≤n-1,a_i≥a_{i-1}0≤ai≤n−1,ai≥ai−1。
output
输出一个整数,代表有多少个符合条件的 kkk 能使得它最终经过的编号集合与所记录的吻合。
题目保证有解。
Sample Input 1
5 5
0 1 2 3 4
Sample Output 1
4
Sample Input 2
6 3
0 2 4
Sample Output 2
2
emmm,这是一个环,那么对于每一个长度1−(n−1)1-(n-1)1−(n−1)我们肯定能够找到其循环节,并求出其循环节的长度,那么这个循环节的长度实际上就是最终能够构成的序列的长度。于是就可以筛出一大部分的答案了,那么对于有些数可能有相同的循环节长度,但其序列可能不同,所以我们只要将给定的序列打上标记,对这些已经筛出来的数xxx,判断是否有vis[x]vis[x]vis[x]存在,如果有,那么就说明了这个循环节上有这个数,那么其循环节就固定了。
至于循环节的长度,我们直接求一个最小公倍数lcm就可以了,lcm(a,b)=a/gcd(a,b)∗blcm(a,b)=a/gcd(a,b)*blcm(a,b)=a/gcd(a,b)∗b
以下是AC代码:
#include <bits/stdc++.h>
using namespace std;typedef long long ll;
const int mac=1e5+10;int vis[mac];int main(int argc, char const *argv[])
{int n,m;scanf ("%d%d",&n,&m);for (int i=1; i<=m; i++){int x;scanf ("%d",&x); vis[x]=1;}int ans=0;for (int i=1; i<n; i++){ll lcm=1ll*n/__gcd(i,n)*i;if (lcm/i==m && vis[i]) ans++;}printf("%d\n",ans);return 0;
}
CSUSTOJ-藤原书记的佩斯(简单数学)相关推荐
- CSUSTOJ-藤原书记想要探病(简单矩阵快速幂)
题目连接:http://acm.csust.edu.cn/problem/4044 博客园食用链接: https://www.cnblogs.com/lonely-wind-/p/13941879.h ...
- [画风突变] 藤原千花专属相册,C语言制作书记专属电子相册!
前言 一款自己制作的电子相册不仅富有创意,而且能够最大可能的满足己需,今天小编带着大家制作的就是藤原千花的电子相册.要是你愿意,你也可以把你和你对象的点滴放进去哦,弄点爱情宣言什么的都是没什么问题. ...
- python 最小二乘回归 高斯核_从简单数学建模开始:08最小二乘准则的应用(附python代码)...
模型拟合一般来说有这么三种: 切比雪夫近似准则 极小化绝对偏差之和 最小二乘准则 这几个原则各有各的适用范围.其中最小二乘准则是比较容易计算的.接下来我将简要的介绍最小二乘准则以及举例说明如何用pyt ...
- 洛谷试炼场-简单数学问题-二分查找
洛谷试炼场-简单数学问题 P1147 连续自然数和 题解: 本题给定一个数n,求连续自然数的和为n,用一个前缀数组,low_bound,upper_bound,查找是否是同一个数.O(nlog(n)) ...
- 龙族幻想最新东京机器人位置_龙族幻想藤原智坐标位置一览 藤原智任务攻略...
龙族幻想v1.3.148安卓版 类型:角色扮演大小:1.39G语言:中文 评分:5.0 标签: 立即下载 龙族幻想藤原智在哪?这是苍穹之下异闻,需要找到npc藤原智,许多玩家都不清楚在什么位置,如何完 ...
- The annotation of C++ primer {藤原豆腐坊自家用}
The annotation of <<C++ primer>> {藤原豆腐坊自家用} 给变量名一个初始值几乎总是正确的. 但不要求必须这么做 C++的主要设计目的之一就是允许 ...
- 【简单数学】末日的传说
[简单数学]末日的传说 题目 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了. 在古老东方的幻想 ...
- 【简单数学】【NOIP 20008】笨小猴
[简单数学][NOIP 20008]笨小猴 问题描述: 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法 ...
- 经济金融领域简单数学建模和分析:MATLAB成本曲线方程和销售收入直线方程
经济金融领域简单数学建模和分析:MATLAB成本曲线方程和销售收入直线方程 MATLAB代码: x=[0:0.1:5]; y=9*x; plot(x,y,'r','LineWidth',0.5) ho ...
最新文章
- Tutorial——使用Maven开发Cloud Driver
- iphone 字符串
- PERL 语言中的q,qw,qr,qx,qq......符号用法总结
- 【PC工具】解放双手:分享京东双十一任务脚本,双十一京东全民养红包活动自动脚本分享...
- nginx做负载均衡,解决多机器多gpu卡服务对外暴露一个接口问题
- C#LeetCode刷题之#849-到最近的人的最大距离(Maximize Distance to Closest Person)
- css让子元素展示成一行,封面模板循环子栏目一行两列DIV+CSS成功实现
- 日访问量1万mysql_日访问量1万服务器
- amplify color_如何使用Amplify监视Nginx
- ping命令两种返回信息的区别
- 旅游后台管理系列——使用maven tomcat插件启动web工程
- GD32F103基础教程—注意事项(三)
- 咪咕音乐HTML代码,python3爬取咪咕音乐榜信息(附源代码)
- win系统分区表丢失后如何恢复
- 【数据】社区发现数据集
- Unity使用反射探头实现地面的镜面反射
- 我与程序员不得不说的二三事——一天一天
- 电脑每次启动都硬盘自检
- python跳一跳脚本详解_微信跳一跳游戏 python脚本辅助得高分
- cookie、sessionStorage、localstorage作用范围