正题

题目链接:https://ac.nowcoder.com/acm/contest/11179/E


题目大意

定义f(x)f(x)f(x)表示1x\frac{1}{x}x1​的混循环节长度(如果没有循环节就是000),TTT组询问给出l,rl,rl,r求
∑i=lrf(i)\sum_{i=l}^rf(i)i=l∑r​f(i)

1≤T≤100,1≤l≤r≤10151\leq T\leq 100,1\leq l\leq r\leq 10^{15}1≤T≤100,1≤l≤r≤1015


解题思路

设aia_iai​表示iii位之后的余数,那么出现循环节当且仅当aia_iai​出现重复。
ai=ai−1×10%n⇒ai=10i%na_i=a_{i-1}\times 10\% n\Rightarrow a_i=10^i\%nai​=ai−1​×10%n⇒ai​=10i%n
那么出现循环节一定满足存在一个正整数kkk使得
ai×10k≡ai(modn)a_i\times 10^k\equiv a_i(mod\ n)ai​×10k≡ai​(mod n)
⇒10k≡1(modngcd(ai,n))\Rightarrow 10^k\equiv 1(mod\ \frac{n}{gcd(a_i,n)})⇒10k≡1(mod gcd(ai​,n)n​)
我们知道10k≡1(modn)10^k\equiv 1(mod\ n)10k≡1(mod n)有解当且仅当gcd(10,n)=1gcd(10,n)=1gcd(10,n)=1。

也就是说我们要找到第一个iii使得gcd(10,ngcd(ai,n))=1gcd(10,\frac{n}{gcd(a_i,n)})=1gcd(10,gcd(ai​,n)n​)=1。

而aia_iai​每次乘十,所以相当于nnn每次在质因数中去掉一个222和555,直到和101010互质。

但是这样还没有结束,因为如果没有循环节就是000,而这里则会统计小数的长度,得减去这些情况,不难发现有循环节的话当且仅当存在某个10k%n=010^k\%n=010k%n=0,也就是说nnn只由222和555构成,暴力枚举这些数就好了。

时间复杂度:O(Tlog⁡2nlog⁡5n)O(T\log_2n\log_5 n)O(Tlog2​nlog5​n)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll P=998244353;
ll T,l,r;
int Ask(ll n){ll ans=n;for(ll i=1,pw=2;pw<=n;i++,pw=pw*2ll)ans=(ans+n/pw)%P;for(ll i=1,pw=5;pw<=n;i++,pw=pw*5ll)ans=(ans+n/pw)%P;for(ll i=1,pw=10;pw<=n;i++,pw=pw*10ll)ans=(ans-n/pw)%P;for(ll i=1,pw=1;pw<=n;i++,pw=pw*2ll)for(ll j=1,qw=1;pw*qw<=n;j++,qw=qw*5ll)(ans-=max(i,j))%=P;return (ans+P)%P;
}
signed main()
{scanf("%lld",&T);while(T--){scanf("%lld%lld",&l,&r);printf("%lld\n",(Ask(r)-Ask(l-1)+P)%P);}return 0;
}

牛客练习赛89E-牛牛小数点【数论】相关推荐

  1. 牛客练习赛89——牛牛小数点(未解决)

    牛牛小数点 题意: 题解: 本题先说结论: 对于一个数x=2a∗5b∗px=2^a*5^b*px=2a∗5b∗p 如果p=1,也就是质因子只有2和5,则x是不循环小数,即f(x)=0 如果p!=1,则 ...

  2. [ACM]【树形DP/LCA】牛客练习赛62 牛牛染颜色

    牛牛染颜色 传送门 题意:给出一个有根树,求满足条件的染色方案的数目,条件:任意两个染黑的点的LCA必须也为黑点. 思路: 我一看到LCA就会想到自己还不会倍增的恐惧 很显然的树形DP.既然是DP,就 ...

  3. E-牛牛小数点_牛客练习赛89(数学)

    E-牛牛小数点_牛客练习赛89 (nowcoder.com) 题目描述 牛牛想和点点交朋友, 于是点点给了牛牛一个问题. 定义关于小数 xxx 的函数 f(x)f(x)f(x), 表示 xxx 中两个 ...

  4. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  5. 牛客练习赛68 B.牛牛的算术

    牛客练习赛68 B.牛牛的算术 题目链接 题目描述 牛牛最近学习了取模是什么 于是他看到了下面这一道题: 多次询问:每次询问包含一个正整数 n 要求你输出下列结果 ∏i=1n∑j=1i∑k=1ji×j ...

  6. 牛客练习赛63 C.牛牛的揠苗助长

    牛客练习赛63 C.牛牛的揠苗助长 题目链接 题目描述 牛牛有一块长度大小为n的菜园,他首先对这块菜园从1到n进行了编号,每一块地分别为1号.2号-n号菜地,然后他往每块菜地中都种下了一些水稻,一开始 ...

  7. 牛客练习赛68 A.牛牛的mex

    牛客练习赛68 A.牛牛的mex 题目链接 题目描述 牛牛现在有一个长度为 nnn 的序列 a1,a2,-,ana_1,a_2,\ldots,a_na1​,a2​,-,an​.现在牛牛有 qqq 次询 ...

  8. 牛客练习赛#105(A-D)

    牛客练习赛#105 文章目录 牛客练习赛#105 A.切蛋糕的贝贝 B.抱歉,这没有集美 C.打牌的贝贝 D.点分治分点 A.切蛋糕的贝贝 题意 有一个正n边形,想通过下列的切法切成面积比为1:1:4 ...

  9. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  10. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

最新文章

  1. 亲手建造自己想要的生活
  2. 【JavaScript总结】JavaScript发展与学习内容
  3. 【FPGA】Spartan-6的时钟管理器(CMT)
  4. XML解析中的namespace初探
  5. iOS推送小结--swift语言
  6. 3月20日, Java 10 正式发布了!
  7. 计算机制图实训心得体会,绘图实训心得体会
  8. 格力机器人图解_格力工业机器人:是时候展示真正的实力了
  9. SAP S/4HANA Cloud 系统集成的一些场景介绍
  10. html 判断为空js,JavaScript判断DIV内容是否为空的方法
  11. 【听说有人想转码】入门----凯撒密码(密文解密,偏移)
  12. 超强的软件工具箱!100+个电脑必备工具 盘姬工具箱分享给大家
  13. Oracle alter 语句用法
  14. 华为数通(一):如何使用ssh console telnet来连接设备
  15. SplitContainer控件的理解
  16. Spring中关于IOC的详解
  17. java8 foreach 抛异常_Java Stream中的异常处理
  18. Pytorch-RuntimeError: size mismatch m1: [a x b], m2: [c x d]
  19. 极客大学算法训练营笔记
  20. 计算机图形学当前研究热点和发展方向,微软亚洲研究院网络图形组深入解释了图形学的现状、发展和未来...

热门文章

  1. lol修改服务器域名,LOL历史转区用户解冻大区官网自助系统地址 新版申请解冻账号网址...
  2. python xpath定位不到_Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)...
  3. 华科计算机课程设计,华中科大操作系统课程设计报告(附源码).doc
  4. qdialog 只有点击才能获得焦点_4 个突破点,让你的 Banner 点击率提升10倍
  5. python 中文编码差异_Python 编码为什么那么蛋疼?
  6. jdk解压版_命令行版的斗地主你玩过没?
  7. 算法题目中经典问题(易错点)
  8. 邮箱通知php,PHPMailer 发送邮件(含详细介绍及使用方法说明)
  9. python程序启动其他python程序,如何使用Python启动应用程序的实例?
  10. [MyBatisPlus]雪花算法