当前位置: 首页 > 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.jsqmd.com/news/860941/

相关文章:

  • 3个真实开发场景:Continue如何让你的JetBrains IDE变成AI编程伙伴
  • 新手入门指南从注册Taotoken到发出第一个ChatCompletion请求
  • DeepCreamPy深度解析:当AI神经网络邂逅动漫图像修复
  • 三步快速实现GitHub Desktop中文界面:终极汉化指南
  • go-jsonnet完整指南:从零开始掌握Jsonnet配置语言
  • 实习准备(26_05_21)
  • # 2026年西安中考复读学校谁家靠谱?教学、案例与管理模式横向测评 - 科技焦点
  • eLabFTW深度解析:开源电子实验记录本的技术架构与实战应用
  • mob源码深度解析:Go语言实现高效Git协作工具的架构奥秘
  • Kubepug快速入门:5分钟学会Kubernetes集群升级安全检查
  • LayoutLMv3终极指南:如何在5分钟内快速部署文档AI多模态模型
  • ChatGPT-Web-Midjourney-Proxy的GPTs功能详解:打造专属AI助手的终极指南
  • RT-DETR自定义数据集训练实战:构建专属实时目标检测器
  • Enumerize 国际化实战指南:如何为枚举值添加多语言支持
  • GitHub Desktop中文汉化解决方案:智能文本映射技术实现界面本地化
  • 得电
  • 如何在Python中实现轻量级人脸与虹膜检测:基于TensorFlow Lite的解决方案
  • 鸣潮模组终极指南:15+功能免费解锁游戏隐藏玩法
  • 3步掌握跨平台文件秒传:NearDrop实战指南
  • 如何通过纯JavaScript拖拽构建器实现零代码网站开发
  • 终极B站数据分析指南:如何用BiliScope插件深度挖掘UP主信息
  • 从灰度图到出版级双色海报:7分钟完成Midjourney双色调全流程(附可复用的JSON提示模板)
  • Spring AI 2.0 开发Java Agent智能体 - 多模态支持
  • # 2026年西安高三补习学校哪家口碑好?五大家长首选靠谱补习学校推荐 - 科技焦点
  • CANN/asc-devkit算子动态库配置
  • 2026年10款降AIGC软件实测:最高AI率100%直降至0.12%
  • ElevenLabs声音库迁移避雷手册(从V2到V3),37家SaaS厂商踩过的5个兼容性深坑:API响应结构突变、SSML标签弃用、Webhook回调中断
  • RustSec平台注册表揭秘:跨平台开发的7个最佳安全实践
  • Web基础(六):Mybatis
  • MySQL事务与锁机制深度解析