【NOI2016】 循环之美 题解】的更多相关文章

[UOJ#221][BZOJ4652][Noi2016]循环之美 试题描述 牛牛是一个热爱算法设计的高中生.在他设计的算法中,常常会使用带小数的数进行计算.牛牛认为,如果在 k 进制下,一个数的小数部分是纯循环的,那么它就是美的.现在,牛牛想知道:对于已知的十进制数 n 和 m,在 k 进制下,有多少个数值上互不相等的纯循环小数,可以用分数 x/y 表示,其中 1≤x≤n,1≤y≤m,且 x,y是整数.一个数是纯循环的,当且仅当其可以写成以下形式:a.c1˙c2c3…cp-1cp˙其中,a 是一…
LINK:NOI2016循环之美 这道题是 给出n m k 求出\(1\leq i\leq n,1\leq j\leq m\) \(\frac{i}{j}\)在k进制下是一个纯循环的. 由于数值相同的分数不能记录 所以 \((i,j)==1\) 对于是一个纯循环的数我们先从最熟悉的10进制下说起. 可以发现\(\frac{1}{7},\frac{1}{13}\)等等都是纯循环的 而\(\frac{1}{6},\frac{1}{4}\)等等非纯循环. 于是可以发现 当j和10互质的时候此时是纯循环…
知识点:莫比乌斯反演 积性函数 杜教筛 废话前言: 我是古明地恋,写这篇题解的人已经被我 请各位读者自行无视搞事的恋恋带有删除线的内容,谢谢茄子. 这道题目本身并不难,但是公式推导/代码过程中具有迷惑性的内容比较多,因此,像我这种什么都不会还眼瞎的马上就该退役回归文化课的辣鸡废柴蒟蒻/kel/kel/kk就会在debug上浪费无谓地消耗大量时间. 因此,在平时写代码时,养成良好的代码习惯(比如:确定常用的变量名,不轻易修改:即使是十分熟悉的函数,也认真写完每一行等)是非常重要的.考试时省下的10…
Solution 由数论基础知识 答案即为$$\sum_{i = 1}^n\sum_{j = 1}^m[i \perp j][j \perp k]$$ 莫反套路可化为$$\sum_{d = 1}\mu(d)[d \perp k] \lfloor \frac{n}{d} \rfloor \sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}[j \perp k]$$ 如果我们可以求出\(g(x)=\sum_{i=1}^x [x \perp k]\),那么后面那坨东西就容易…
Description 牛牛是一个热爱算法设计的高中生.在他设计的算法中,常常会使用带小数的数进行计算.牛牛认为,如果在k进制下,一个数的小数部分是纯循环的,那么它就是美的.现在,牛牛想知道:对于已知的十进制数n和m,在k进制下,有多少个数值上互不相等的纯循环小数,可以用分数 xy 表示,其中 1≤x≤n,1≤y≤m,且 x,y是整数.一个数是纯循环的,当且仅当其可以写成以下形式:a.c1˙c2c3…cp-1cp˙其中,a 是一个整数,p≥1:对于 1≤i≤p,ci是 kk 进制下的一位数字.例…
Description 牛牛是一个热爱算法设计的高中生.在他设计的算法中,常常会使用带小数的数进行计算.牛牛认为,如果在 k  进制下,一个数的小数部分是纯循环的,那么它就是美的.现在,牛牛想知道:对于已知的十进制数 n 和 m,在  kk 进制下,有多少个数值上互不相等的纯循环小数,可以用分数 xy 表示,其中 1≤x≤n,1≤y≤m,且 x,y是整数 .一个数是纯循环的,当且仅当其可以写成以下形式:a.c1˙c2c3…cp-1cp˙其中,a 是一个整数,p≥1:对于 1 ≤i≤p,ci是 k…
题目链接 BZOJ 题解 orz 此题太优美了 我们令\(\frac{x}{y}\)为最简分数,则\(x \perp y\)即,\(gcd(x,y) = 1\) 先不管\(k\)进制,我们知道\(10\)进制下如果\(\frac{x}{y}\)是纯循环的,只要\(2 \perp y\)且\(5 \perp y\) 可以猜想在\(k\)进制下同样成立 证明: 若\(\frac{x}{y}\)为纯循环小数,设其循环节长度为\(l\),那么一定满足 \[\{ \frac{xk^{l}}{y} \} =…
Description 牛牛是一个热爱算法设计的高中生.在他设计的算法中,常常会使用带小数的数进行计算.牛牛认为,如果在 k  进制下,一个数的小数部分是纯循环的,那么它就是美的.现在,牛牛想知道:对于已知的十进制数 n 和 m,在  kk 进制下,有多少个数值上互不相等的纯循环小数,可以用分数 xy 表示,其中 1≤x≤n,1≤y≤m,且 x,y是整数 .一个数是纯循环的,当且仅当其可以写成以下形式:a.c1˙c2c3…cp-1cp˙其中,a 是一个整数,p≥1:对于 1 ≤i≤p,ci是 k…
题目大意 对于已知的十进制数\(n\)和\(m\),在\(k\)进制下,有多少个数值上互不相等的纯循环小数,可以用\(x/y\)表示,其中 \(1\leq x\leq n,1\leq y\leq m\) (\(n,m\leq10^9,k\leq2000\)) 题解 这个人(点这里)讲得很清楚\(\color{white}{\text{shing太强了}}\) 代码 #include<algorithm> #include<cmath> #include<cstdio>…
传送门 首先要知道什么样的数才是"纯循环数".打表可以发现,这样的数当且仅当分母和\(k\)互质,这是因为,首先考虑除法过程,每次先给当前余数\(*k\),然后对分母做带余除法,那么出现循环就要使的某一次除完后的余数在前面出现过.并且有欧拉定理\(a^{\varphi(n)}\equiv 1 (\mod n)(\gcd(a,n)=1)\),这样可以使得在计算小数点后一位时的余数在若干次后再次出现 然后要使得数值不同,所以其实要求的是这个东西\[\sum_{i=1}^{n}\sum_{j…