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

打卡信奥刷题(3351)用C++实现信奥题 P9560 [SDCPC 2023] Math Problem

P9560 [SDCPC 2023] Math Problem

题目描述

给定两个正整数n nnk kk,您可以进行以下两种操作任意次(包括零次):

  • 选择一个整数x xx满足0 ≤ x < k 0 \leq x < k0x<k,将n nn变为k ⋅ n + x k\cdot n+xkn+x。该操作每次花费a aa枚金币。每次选择的整数x xx可以不同。
  • n nn变为⌊ n k ⌋ \lfloor \frac{n}{k} \rfloorkn。该操作每次花费b bb枚金币。其中⌊ n k ⌋ \lfloor \frac{n}{k} \rfloorkn表示小于等于n k \frac{n}{k}kn的最大整数。

给定正整数m mm,求将n nn变为m mm的倍数最少需要花费几枚金币。请注意:0 00是任何正整数的倍数。

输入格式

有多组测试数据。第一行输入一个整数T TT1 ≤ T ≤ 10 5 1\leq T\leq 10^51T105)表示测试数据组数。对于每组测试数据:

第一行输入五个正整数n nnk kkm mma aab bb1 ≤ n ≤ 10 18 1\leq n\leq 10^{18}1n10181 ≤ k , m , a , b ≤ 10 9 1\leq k, m, a, b\leq 10^91k,m,a,b109)。

输出格式

每组数据输出一行一个整数,代表将n nn变为m mm的倍数最少需要花费几枚金币。如果无法完成该目标,输出− 1 -11

【样例解释】

对于第一组样例数据,一开始n = 101 n=101n=101,最优操作如下:

  • 首先进行一次第二种操作,将n nn变为⌊ n 4 ⌋ = 25 \lfloor \frac{n}{4} \rfloor=254n=25,花费5 55枚金币。
  • 接下来进行一次第一种操作,选择x = 3 x = 3x=3,将n nn变为4 ⋅ n + 3 = 103 4\cdot n+3=1034n+3=103,花费3 33枚金币。
  • 接下来进行一次第一种操作,选择x = 2 x = 2x=2,将n nn变为4 ⋅ n + 2 = 414 4\cdot n+2=4144n+2=414,花费3 33枚金币。
  • 此时414 = 2 × 207 414=2 \times 207414=2×207,满足n nnm mm的倍数。共花费5 + 3 + 3 = 11 5+3+3=115+3+3=11枚金币。

对于第二组样例数据,进行两次第二种操作将n nn变为0 00。共花费1 + 1 = 2 1 + 1 = 21+1=2枚金币。

对于第三组样例数据,因为n = 114 = 6 × 19 n = 114 = 6 \times 19n=114=6×19已经是m mm的倍数,因此无需进行任何操作。共花费0 00枚金币。

输入输出样例 #1

输入 #1

4 101 4 207 3 5 8 3 16 100 1 114 514 19 19 810 1 1 3 1 1

输出 #1

11 2 0 -1

C++实现

#include<bits/stdc++.h>usingnamespacestd;intt,k,m,a,b;longlongp[70],cnt,n;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>t;while(t--){cin>>n>>k>>m>>a>>b;cnt=1,p[1]=n;while(k!=1&&n!=0)//p中记录所有操作二的可能结果{n/=k;p[++cnt]=n;}longlongans=1e18;for(inti=1;i<=cnt;i++){if(k==1)//k=1要特判{if(p[i]%m==0)ans=min(ans,1ll*(i-1)*b);continue;}intl=p[i],r=p[i];longlongsum=1ll*(i-1)*b;while(l/m==r/m&&l%m!=0&&r%m!=0){l*=k,r*=k;r+=k-1;sum+=a;}ans=min(ans,sum);}if(ans!=1e18)cout<<ans<<"\n";elsecout<<-1<<"\n";}return0;}

后续

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

http://www.zskr.cn/news/1442527.html

相关文章:

  • 2026武汉收纳整理师推荐|武汉上门整理服务哪家靠谱?高口碑高性价比榜单 - 土星买买买
  • Trelby终极指南:为什么这款免费开源剧本写作软件能让创作者专注故事本身?
  • KNX智能照明避坑指南:用ETS5配置调光与场景时,90%新手会忽略的5个细节
  • YOLO11转CoreML完全指南:手把手教你如何将YOLO11转换为CoreML格式,并在iOS上测试。
  • 2026年5月目前靠谱的玉石厂商推荐,易加工石材/天然大理石/适配背景墙岩板/环保无异味岩板,玉石公司选哪家 - 品牌推荐师
  • ncmdump:突破网易云音乐NCM加密的智能解密工具,5分钟解锁音乐自由
  • 长沙民办中职院校排行 5所合规办学机构实力解析 - 互联网科技品牌测评
  • 3步安装OmenSuperHub:终极免费的暗影精灵笔记本硬件管理工具
  • 公链革命2.0:Layer 1与Layer 2如何重构区块链开发者的黄金时代
  • MapStruct 与 Lombok 协作的注解处理器执行顺序分析
  • m4s转MP4完整指南:3分钟解锁B站缓存视频的终极解决方案
  • 【收藏干货】2026 新版大模型转行全攻略:零基础小白、在职程序员转行避坑指南
  • 用AI翻译你的WordPress —— WordPress AI Generator 2.4.0发布
  • 微博舆情监控:定时爬取热点话题,通过NLP判断正负面情绪。微博舆情监控实战:基于定时爬取与NLP情感分析的Python实现
  • 空间计算在未来大有前景
  • 终极指南:掌握RPFM游戏模组开发的10个关键技术
  • Palworld存档修复终极指南:如何在不同服务器间无缝迁移游戏进度
  • rpm方式安装minio
  • 成都角钢公司|角钢厂家|角钢批发推荐|四川盛世钢联国际贸易有限公司供应 - 四川盛世钢联营销中心
  • 零基础理解 RAG:从文档分块、向量化到相似度检索,带你搞懂检索增强生成的底层核心逻辑
  • 告别死记硬背!用这10个高频ROS2命令玩转你的机器人项目
  • 基于ESP8266与Google Assistant的智能宠物喂食器DIY全攻略
  • AI文本生成伦理困境:从技术原理到实践挑战的深度解析
  • 2026年5月钢结构直销厂家性价比高的,优秀的钢结构,二手钢结构拆迁效率高不耽误后续施工 - 品牌推荐师
  • Prompt工程实战复盘:从反复改稿到搭建【提示词编写标准化智能体工作流】
  • 百度网盘秒传链接:5分钟掌握免安装全平台文件秒传技巧
  • 2026年5月国内技术好的猪用输精管直销厂家推荐,养殖设备/牛用输精管/猪用设备/猪用输精管,猪用输精管直销厂家哪个好 - 品牌推荐师
  • Sora 2真实用户行为数据首曝:97.3%创作者在12秒内完成首段提示词迭代(附可复用的Prompt热启动模板)
  • 3PEAK思瑞浦 TP5592-VR MSOP8 精密运放
  • 基于ESP8266与RS-485的光伏逆变器本地监控系统全栈实践