当前位置: 首页 > news >正文

打卡信奥刷题(3284)用C++实现信奥题 P8926 「GMOI R1-T3」Number Pair

P8926 「GMOI R1-T3」Number Pair

题目描述

我们定义满足如下条件的数对(x,y)(x,y)(x,y)叫做奇妙数对:

k×gcd⁡(x,y)=lcm⁡(x,y)k \times \gcd(x,y)=\operatorname{lcm}(x,y)k×gcd(x,y)=lcm(x,y)并且P≤gcd⁡(x,y)≤QP \le \gcd(x,y) \le QPgcd(x,y)Q(保证P≤QP \le QPQ)。

TTT组数据,对于每一组数据,给定k,P,Qk,P,Qk,P,Q三个数,求符合条件的数对(x,y)(x,y)(x,y)的对数。

答案对109+710^9+7109+7取模。

输入格式

本题有多组数据。

第一行一个整数TTT,表示数据数量。

接下来TTT行,每行三个整数k,P,Qk,P,Qk,P,Q

输出格式

对于每一组数据,给出对应答案,每组数据一行。

输入输出样例 #1

输入 #1

5 10 1 3 30 1 5 997 24 35 34 39 99 210 1000 1001

输出 #1

12 40 24 244 32

说明/提示

注意并不寻常的时间限制。

对于100%100\%100%的数据1≤k≤10161 \le k \le 10^{16}1k10161≤T≤501 \le T \le 501T501≤P≤Q≤2×1091 \le P \le Q \le 2\times 10^91PQ2×109

测试点kkkTTTPPPQQQ总分
1∼31\sim 313k≤3k \le 3k3T=1T=1T=1P=1P=1P=1Q=1Q=1Q=1151515
4∼84\sim 848k≤100k \le 100k100T≤8T \le 8T8P≤30P \le 30P30Q≤30Q \le 30Q30151515
9∼139\sim 13913k≤103k \le 10^3k103T≤50T \le 50T50P≤500P \le 500P500Q≤500Q \le 500Q500252525
14∼1814\sim 181418k≤1012k \le 10^{12}k1012T≤50T \le 50T50P≤104P \le 10^4P104Q≤104Q \le 10^4Q104151515
19∼2219\sim 221922k≤1013k \le 10^{13}k1013T≤50T \le 50T50P≤106P \le 10^6P106Q≤106Q \le 10^6Q106121212
23∼2823\sim 282328k≤1016k \le 10^{16}k1016T≤50T \le 50T50P≤2×109P \le 2\times10^9P2×109Q≤2×109Q \le 2\times10^9Q2×109181818

本题保证kkk随机生成,并不存在极限卡人数据,时限已经开到 std 两倍,请各位选手放心。

C++实现

#include<bits/stdc++.h>usingnamespacestd;intconstN=6e6+10;intcnt,prime[N];longlongconstmod=1e9+7;bitset<100000001>vis;inlinelonglongqpow(longlonga,longlongb,longlongt=1){for(;b;b>>=1,a=a*a%mod)if(b&1)t=t*a%mod;returnt;}inlinevoidwork(intn){for(inti=2;i<=n;++i){if(!vis[i])prime[++cnt]=i;for(intj=1;j<=cnt&&i*prime[j]<=n;++j){vis[i*prime[j]]=1;if(i%prime[j]==0)break;}}}signedmain(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);intt;cin>>t;work(100000000);while(t--){longlongans=0,k,p,q;cin>>k>>p>>q;for(inti=1;i<=cnt&&prime[i]*prime[i]<=k;++i){if(k%prime[i]==0)++ans;while(k%prime[i]==0)k/=prime[i];}if(k!=1)++ans;cout<<(q-p+1)*qpow(2,ans)%mod<<'\n';}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.cnnetsun.cn/news/2450084.html

相关文章:

  • 7字重思源宋体:让中文排版告别“千篇一律“的时代
  • 别再只会wrk -t -c -d了!用Lua脚本玩转复杂API压力测试(附实战脚本)
  • 2026年汽车
  • 5分钟打造专属Gmail桌面版:告别浏览器标签的终极邮件管理方案
  • 终极Windows更新修复指南:3步解决系统更新卡顿问题
  • 科研图表数据提取终极指南:如何用WebPlotDigitizer快速解放你的双手
  • Proteus 8.9 + Keil 5 保姆级教程:手把手教你搞定STM32F103R6仿真(附电源配置避坑指南)
  • 从开发者反馈看taotoken在ubuntu开发环境中的接入便捷性
  • 1 还在为百度网盘离线下载繁琐操作烦恼?试试这个Python神器!
  • 让旧款iOS设备重获新生:Legacy-iOS-Kit完全指南
  • WarcraftHelper:终极魔兽争霸III兼容性解决方案,5分钟解决所有现代系统问题
  • C166嵌入式开发中全局变量固定地址定位方法详解
  • LRCGET:三步完成本地音乐歌词批量下载的高效解决方案
  • 拯救者工具箱完整指南:解锁联想游戏本隐藏性能的终极方案
  • Go 入门 05:数组、切片与 Map
  • LRCGET:如何为你的本地音乐库实现智能歌词同步?
  • 英创ARM9工控主板Linux应用自动启动方案与实战
  • WebPlotDigitizer完整指南:如何5分钟内从图表图像提取科研数据
  • OBS多平台同步直播插件:一键开启全网覆盖的直播新时代
  • CircuitJS1电路仿真器:3步搭建你的虚拟电子实验室
  • 别再被跨域图片坑了!html2canvas.js 0.5.0-beta4 完整配置指南(附useCORS和proxy实战)
  • 深度解析RePKG:解锁Wallpaper Engine壁纸资源的专业工具
  • 告别OnlyOffice限制!用Alist+KkFileView搭建全能文件预览服务(支持PDF/图片/压缩包等)
  • 【亲测免费】 探秘爱的数字化邀请——微信小程序婚礼邀请函开源项目推荐
  • 从Scene到Game:深度解析Unity中Align With View的工作原理与实战应用
  • 单文件产出知识参考库技能singlefile-output-reference
  • 逆向新手看过来:手把手教你用LSPosed+FunDex2,给APK‘扒衣服’看源码
  • 如何高效获取网盘直链:LinkSwift完整使用指南与配置教程
  • 【免费下载】 批量GetShell工具新版:自动化漏洞利用的利器
  • 从网站点击量到疾病发病率:泊松回归模型在业务中的5个真实应用场景与R实现