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

第六届辽宁省大学生程序设计竞赛 B题思路分享(数论,构造,欧拉定理)

题意概述

给定一个键盘,有 \(0,1,\cdots,9\) 的数字按键,其中有 \(k\) 个不可用,保证按键 \(0\) 可用。给出一种构造方案使得按出的数为 \(m\) 的倍数,如果不存在输出 \(-1\)

\(1\le m \le 10^7\)

思路

要让按出的数是 \(m\) 的倍数,本质就是凑出 \(m\) 的所有质因数。

可以无限制地在末尾添加 \(0\),相当于 \(2\)\(5\) 的因子是无限的,为方便讨论,删掉 \(m\) 中所有 \(2\)\(5\) 的因子。

删完之后,\(\gcd(m,10)=1\),根据欧拉定理,得:

\[10^{\varphi(m)} \equiv 1 \pmod m \]

即:

\[m \mid \underbrace{99\cdots 9}_{\varphi(m) \text{个}} \]

\(9m\) 带入,得:

\[9m \mid \underbrace{99\cdots 9}_{\varphi(9m) \text{个}} \]

即:

\[m \mid \underbrace{11\cdots 1}_{\varphi(9m) \text{个}} \]

因此可以按 \(\varphi(9m)\) 次相同任意按键,最后补上足够多 \(0\) 即可,当只有按键 \(0\) 的时候无解。

考虑到空间限制,可能无法预处理所有欧拉函数值,采取求单个欧拉函数的方法。

时间复杂度 \(\mathcal{O}(T \sqrt{m})\)

代码

//author:kzssCCC#include <bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int m,k;cin >> m >> k;vector<bool> use(10,true);for (int i=1;i<=k;i++){int v;cin >> v;use[v] = false;}int v = -1;for (int i=1;i<=9;i++){if (use[i]){v = i;break;}}if (v==-1){cout << -1 << '\n';return;}while (m%5==0){m/=5;}while (m%2==0){m/=2;}auto cal = [&](ll x){ll res = x;for (ll i=2;i*i<=x;i++){if (x%i==0){while (x%i==0){x/=i;}res -= res/i;}}if (x>1){res -= res/x;}return res;};cout << 2 << '\n';cout << v << ' ' << cal(9*m) << '\n';cout << 0 << ' ' << (ll)1e8 << '\n';
}int main(){ios::sync_with_stdio(false);cin.tie(0);int t;cin >> t;while (t--) solve();return 0;
}
http://www.gsyq.cn/news/1341226.html

相关文章:

  • SeekStorm多租户服务器部署教程:支持千级并发查询的完整方案
  • TripStar快速上手:5分钟搭建你的AI旅行助手
  • curtains.js实战:10个简单步骤创建第一个3D交互平面
  • No!! MeiryoUI终极指南:3步恢复Windows界面字体自定义功能
  • Android树状视图终极指南:GysoTreeView全方位解析与实战教程
  • Bandcamp音乐下载神器:高效获取高品质独立音乐的完整指南
  • AI大模型支持下的:CNS与顶级期刊论文写作与发表方法与技巧分享
  • OpenClaw+Hermes +Vibe Coding本地部署|论文自动化|知识工作流
  • Cookies.js 与其他Cookie库对比:终极优势分析与适用场景指南
  • Midjourney纹理生成终极瓶颈曝光:GPU显存≠关键,真正卡点是CLIP文本嵌入层的纹理语义坍缩(附3种绕过方案)
  • Enumerize 国际化实战指南:如何为枚举值添加多语言支持
  • 人工模仿智能在专业领域中的挣扎
  • 设施区位鲁棒优化的地理计算及系统开发【附程序】
  • # 2026年西安高三补习学校哪家口碑好?五大家长首选靠谱补习学校推荐 - 科技焦点
  • CMake基础:常用内部变量和环境变量的引用
  • 【机密工作流】Adobe+Midjourney跨平台色调分离闭环:PS动作脚本×MJ Webhook回调×ICC配置文件自动注入
  • 鸣潮模组终极指南:15+功能免费解锁游戏隐藏玩法
  • 初次在Taotoken模型广场选型与试用的流程体验
  • 智谱AI AutoClaw APP来了!手机也能指挥AI干活了
  • 2026年10款降AIGC软件实测:最高AI率100%直降至0.12%
  • 2026亲测10款降AI率网站红黑榜!优缺点全透明,达标率直接对标行业天花板
  • pointer reference作为顶层参数(一)
  • 【Outbox 事件驱动 + Canal Binlog 增量订阅】:用户关系模块架构实战详解
  • AALC自动化工具完整指南:如何用智能助手彻底优化《Limbus Company》游戏时间
  • LayoutLMv3终极指南:如何在5分钟内快速部署文档AI多模态模型
  • FileBrowser企业级安全配置:构建文件管理系统的密码防护体系
  • 从灰度图到出版级双色海报:7分钟完成Midjourney双色调全流程(附可复用的JSON提示模板)
  • 通过 Taotoken CLI 工具一键配置开发环境与多个 AI 工具的统一接入点
  • 5分钟掌握:跨平台获取官方macOS安装包的终极指南
  • CANN/asc-devkit atanf函数文档