牛客练习赛89E-牛牛小数点【数论】

正题

题目链接: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=lrf(i)

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


解题思路

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=ai1×10%nai=10i%n
那么出现循环节一定满足存在一个正整数kkk使得
ai×10k≡ai(modn)a_i\times 10^k\equiv a_i(mod\ n)ai×10kai(mod n)
⇒10k≡1(modngcd(ai,n))\Rightarrow 10^k\equiv 1(mod\ \frac{n}{gcd(a_i,n)})10k1(mod gcd(ai,n)n)
我们知道10k≡1(modn)10^k\equiv 1(mod\ n)10k1(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每次在质因数中去掉一个222555,直到和101010互质。

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

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


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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8.11模拟:数据结构

文章目录前言考场复盘T1 forwardT2 basketT4 square总结前言 320分 还不错啦 没有挂分还是很可贵的 &#xff08;暴力TLE就不怪我了&#xff09; T4反过来想其实就很可做了 逆向的思想需要培养&#xff08;今天T1、昨天T2也是&#xff09; 说实话今天早上状态不太好 特困生 不…

[COCI2017-2018#5] Pictionary(并查集+dfs)

贼ex的一道&#xff0c;卡了本仙女整整7个小时orz 思路容易理解&#xff0c;but码力very重要orz 我愿意花五毛钱提升我的码力&#xff0c;换个脑子也行&#xff0c;不换脸这张脸生得俊俏 luogu传送door 题目 在宇宙一个不为人知的地方&#xff0c;有一个星球&#xff0c;上面…

P4570 [BJWC2011]元素

题目描述&#xff1a; 每个矿石有序号和魔力值&#xff0c;每个矿石最多使用一次&#xff0c;且多个矿石序号不能异或为0的前提下&#xff0c;问最多可以得到多少魔力值 题解&#xff1a; 异或运算的最终结果只和用于运算的数的各位上1的数量有关&#xff0c;与各数字运算的…

Docker最全教程——从理论到实战(九)

在本系列教程中&#xff0c;笔者希望将必要的知识点围绕理论、流程&#xff08;工作流程&#xff09;、方法、实践来进行讲解&#xff0c;而不是单纯的为讲解知识点而进行讲解。也就是说&#xff0c;笔者希望能够让大家将理论、知识、思想和指导应用到工作的实际场景和实践之中…

【做题记录】CF1444A Division

CF1444A Division 题意&#xff1a; 给定 \(t\) 组询问&#xff0c;每组给两个数 \(p_i\) 和 \(q_i\) &#xff0c;找出最大的整数 \(x_i\) &#xff0c;要求 \(p_i\) 可被 \(x_i\) 整除&#xff0c;且 \(x_i\) 不可被 \(q_i\) 整除 。 题解&#xff1a; 呜呜呜这道题总共算下来…

CF891C-Envy【可撤销并查集】

正题 题目链接:https://www.luogu.com.cn/problem/CF891C 题目大意 nnn个点mmm条边的一张无向联通图&#xff0c;每次询问一个边集能否同时出现在同一棵最小生成树上。 1≤n,m,q,wi,∑k≤51051\leq n,m,q,w_i,\sum k\leq 5\times 10^51≤n,m,q,wi​,∑k≤5105 解题思路 考虑K…

[2019CSP多校联赛普及组第五周] 调度CPU (贪心)

来来来&#xff0c;走过路过不要错过题目题解代码实现1代码实现2题目 ⼩Y同学有⼀块超级CPU&#xff0c;它有两个超级核⼼A和B。 A核⼼可以同时处理多项任务&#xff0c;每项任务处理时间为x&#xff0c;B核⼼只能同时处理⼀项任务&#xff0c;每项任务处理时间为y。 这⼀天…

8.12模拟:dp递推

文章目录前言本次最大收获考场复盘T1 lectureT2 n-thlonT3 assignmentT4 recoverset总结前言 245分 100704035 不太满意qwq &#xff08;被KH暴打 &#xff09; 后三道题全是部分分 而且T2和T3关键性质都出来了&#xff0c;距离正解只差临门一脚 但是就差了这一脚 感觉今天T2、…

NumSharp v0.6.1 科学计算库发布,支持标量和隐式转换

NumSharp&#xff08;Numerical .NET&#xff09;可以说是C&#xff03;中的科学计算库。 它是用C&#xff03;编写的&#xff0c;符合.netstandard 2.0库标准。 它的目标是让.NET开发人员使用NumPy的语法编写机器学习代码&#xff0c;从而最大限度地借鉴现有大量在python代码的…

【做题记录】CF1451E2 Bitwise Queries (Hard Version)

CF1451E2 Bitwise Queries (Hard Version) 题意&#xff1a; 有 \(n\) 个数( \(n\le 2^{16}\) &#xff0c;且为 \(2\) 的整数次幂&#xff0c;且每一个数都属于区间 \([0,n-1]\) ) 可以通过询问交互库不超过 \(n1\) 次询问&#xff0c;每次询问编号为 \(i,j\) ( \(1\le i,j \l…

P4301 [CQOI2013] 新Nim游戏

P4301 [CQOI2013] 新Nim游戏 题目&#xff1a; 在传统的Nim游戏基础上加一步&#xff0c;在第一个回合中&#xff0c;第一个游戏者可以直接拿走若干个整堆的火柴。可以一堆都不拿&#xff0c;但不可以全部拿走。第二回合也一样&#xff0c;第二个游戏者也有这样一次机会。从第…

51nod1667-概率好题【容斥,组合数学】

正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1667 题目大意 两个人。 第一个人有k1k_1k1​个集合&#xff0c;第iii个包括了范围[L1i,R1i][L1_i,R1_i][L1i​,R1i​]的整数。 第二个人有k2k_2k2​个集合&#xff0c;第iii个包括了范围[L2i,R2i][L2_i…

[Luogu2279][HNOI2003] 消防局的设立

文章目录题目法一&#xff1a;树上DP思路代码实现法二&#xff1a;贪心 搜索思路代码实现题目 2020年&#xff0c;人类在火星上建立了一个庞大的基地群&#xff0c;总共有n个基地。起初为了节约材料&#xff0c;人类只修建了n-1条道路来连接这些基地&#xff0c;并且每两个基…

8.13模拟:分治二分倍增快速幂

文章目录前言考场复盘T1 roadT2 shopT3 runT4 stairs总结前言 240分 100802040 T3少取了一个模结果全挂掉了&#xff08;好不容易推出来了…&#xff09; T2也因为各种奇怪的错误挂了分 qwq 吸取教训吧 考场 今天先看题 T1第一眼看错了题意觉得水的不行 T3YBT原题且很水 T2T…

dnSpy 强大的.Net反编译软件

一说起.net的反编译软件&#xff0c;大家首先想到的就是Reflector&#xff0c;ILSpy&#xff0c;dotPeek等等。而dnSpy同样是一款优秀的反编译软件&#xff0c;同时它是开源免费的。官方的描述是: dnSpy是一个调试器和.NET组件编辑器。 即使您没有任何可用的源代码&#xff0c;…

图的匹配

定义见&#xff1a;OI-Wiki 图的匹配 。 二分图 解法 \(1\) &#xff1a;网络流(通用) 二分图最大匹配可以转换成最大流(费用流)模型 。 如果使用 \(\operatorname{Dinic}\) 算法求该网络的最大流&#xff0c;复杂度\(O(\sqrt{n}m)\) 。 具体代码见博客文章网络流 。 解法 \(2\…

AT2161-[ARC065D]シャッフル/Shuffling【dp】

正题 题目链接:https://www.luogu.com.cn/problem/AT2161 题目大意 长度为nnn的0/10/10/1串&#xff0c;mmm个区间&#xff0c;你可以按照顺序任意排列区间中的数字&#xff0c;求最后的可能情况数。 保证给出区间的左端点不降。 1≤n,m≤30001\leq n,m\leq 30001≤n,m≤3000…

【acwing210 异或运算】

【acwing210 异或运算】 题意&#xff1a; 给定你由N个整数构成的整数序列&#xff0c;你可以从中选取一些&#xff08;甚至一个&#xff09;进行异或&#xff08;XOR&#xff09;运算&#xff0c;问所有能得到的不同的结果中第k小的结果是多少。 题解&#xff1a; 把所有数…

小奇探险

文章目录题目题解代码实现题目 小奇去遗迹探险&#xff0c;遗迹里有N个宝箱&#xff0c;有的装满了珠宝&#xff0c;有的装着废品。 小奇有地图&#xff0c;所以它知道每一个宝箱的价值&#xff0c;但是它不喜欢走回头路&#xff0c;所以要按顺序拿这N个宝箱中的若干个。 拿宝…

8.14 模拟:字符串

文章目录前言收获考场复盘T1 wordlistT2 passwordT3 readtreeT4 bracket总结前言 290分 2010070100 又被KH爆碾了qwq T1签到题脑抽写挂了80分… &#xff08;就差这80啊…&#xff09;、 收获 学会了启发式合并 还有一个把字符串所有后缀放进trie树的比较字符串的技巧 考场…