Educational Codeforces Round 173 B.Digits

news/2024/12/26 21:36:56/文章来源:https://www.cnblogs.com/matinalcosmos/p/18634230

Codeforces 题解 - [Educational Codeforces Round 173 B.Digits]

题目链接

题目大意

n! 个 d 组成的形如 dd ''' d (n! 个)
求能被1-9中哪些奇数整除
每个用例按升序输出

输入

3
2 6
7 1
8 5

输出

1 3
1 3 7 9
1 3 5 7 9

解题思路

解法1
  这个数可以看作 C = d * 1111'''1(n!个)
注意到后面的数的形式 S(n) = 10$^0$ + 10$^1$ + 10$^2$ + 10$^3$ + ... + 10$^{n! - 1}$
等比数列求和得到
S(n) = (10$n!$ - 1)⁄9
只讨论S(n)

  • 1 1始终是答案,任何书都可以被1整除
  • 3 一个数所有位数之和能被3整除它就是3的倍数,那么当n!的大于等于3,即n >= 3时,S(n) % 3 = 0,即C一定是3的倍数
  • 5 一个非负整数个位是0或5,才可以是5的倍数,因此S(n) 绝不是5的倍数
  • 7
    S(n) = 10^0 + 10^1 + 10^2 + ''' + 10^(n! - 1)
    10$^0$ ≡ 1 (mod 7)
    10$^1$ ≡ 3 (mod 7)
    10$^2$ ≡ 2 (mod 7)
    10$^3$ ≡ 6 (mod 7)
    10$^4$ ≡ 4 (mod 7)
    10$^5$ ≡ 5 (mod 7)
    10$^6$ ≡ 1 (mod 7)
    可知周期为6
    10$^k$ ≡ 10$^{k mod 6}$ (mod 7)
    10的任何倍六次方的模7结果 都是1
    10$^{(6k\mod\6)}$ ≡ 1 (mod 7)
    当n! 是6的倍数时
    10$^{n!}$ - 1 ≡ 0 (mod 7)
    说明 10$^{n!}$ - 1 是 7的倍数
    接下来考虑分母9.我们知道,9和7互质,
    ∴(10$n!$ - 1)⁄9 能被7整除的条件就是 10$^{n!}$ - 1本身就是7的倍数
    ∴当n!包含6的倍数的时即n>=3时,我们可以得出
    (10$n!$ - 1)⁄9 ≡ 0 (mod 7)
  • 9 当S(n)的数字根为9时,S(n) 能被9整除
    设S(n) = 10$^0$ + 10$^1$ + 10$^2$ + ''' + 10$^{n! - 1}$
    什么是数字根
    更简单的来说就是每一位的和相加是9的倍数,这个数就是9的倍数
    因此当n! >= 6(因为此时有3 和 6,即一定是9的倍数个1),即n >= 6
    时,S(n) 一定是9的倍数。
接下来考虑d,如果d%i == 0, i∈{x|x∈{1,3,5,7,9}},那么d*S(n) 一定是i的倍数。  
还有一个特殊情况就是d % 3 == 0 && S(n) % 3 == 0, C也是9的倍数。  
至此所有情况考虑完毕

附上代码

    #include "bits/stdc++.h"
using namespace std;
// #define int int64_tvoid Solution()
{int n, d;cin >> n >> d;//1set<int> Ans = {1};//5if (d == 5) Ans.insert(5);//3 数位之和是3的倍数if (d % 3 == 0 || n >= 3) Ans.insert(3);//7if (d % 7 == 0 || n >= 3){Ans.insert(7);}else if (n < 3){int factorialN = 1;for (int i = 2; i <= n; ++i){factorialN *= i;}if ((int)pow(10, factorialN) % 7 == 0)Ans.insert(7);}//9if (d % 9 == 0 || n >= 6 || n >= 3 && d % 3 == 0){Ans.insert(9);}for (auto& x : Ans) cout << x << ' '; cout << '\n';return;
}signed main()
{int t;cin >> t;while(t--){Solution();}return 0;
}

解法2 暂且不论

代码实现

#include <bits/stdc++.h>
using namespace std;int main() 
{return 0;
}

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

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

相关文章

Java编程规范-DO / BO / DTO / VO / AO的使用

Java 开发 DO / BO / DTO / VO / AO 的作用 Java 开发中,DO(Data Object)、BO(Business Object)、DTO(Data Transfer Object)、VO(View Object) 和 AO(Application Object) 是常用的对象类型,每种类型都在特定的层次和场景中发挥不同的作用。以下是它们的定义和使用…

硬件开发笔记(三十二):TPS54331电源设计(五):原理图BOM表导出、元器件封装核对

前言一个12V转5V、3.3V和4V的电源电路设计好了,下一步导出BOM表,二次核对元器件型号封装,这是可以生产前的最后一步了。 导出BOM表步骤一:打开原理图打开项目,双击点开原理图:   步骤二:报告-元器件列表列宽一点,板子元器件种类规格不多的时候,导出的东西也不多,因…

数字孪生-智能制造

1、数字企业内循环:打造端到端的数字化应用体验 2、GARTNER分层架构 3、企业数字化架构 4、数字企业的两大核心特征 6、产品数字主线赋能企业转型 7、数字主线关键技术:基于统一架构构建产品全量数字模型 8、闭环数字化解决方案 9、基于数字主线的设计-仿真-试验协同 10、产品数…

C# WPF PrintDialog 打印(3)

前面https://www.cnblogs.com/yinyu5/p/18634080使用PrintDocument方法打印了Canvas,这里打印下面的DataGrid列表内容:这里DataGrid的数据源是DataTable,后台代码:1 private void PrintDocument_DataTable_Method(string Title, DataTable dataTable)2 {3 …

【JAVA代码审计】记一次某java类的cms最最最详细的代码审计

前言 刚好遇到一个授权的渗透是通过该cms实现getshell,所以顺便审计一下java类的cms,这个管理系统是一个内容管理系统,下载地址 https://gitee.com/oufu/ofcms/tree/V1.1.3/tomcat下载地址 https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.78/bin/apache-tomcat-8.5.78-wind…

12.26日每日总结

昨天在调试51单片机的串口时,发现芯片手册上有一句话,在使用定时器1产生串口的波特率时,定时器1就不能使能了。不是不能用,是直接不让使能了,使能后会出错,导致发送的数据不稳定。 今天继续研究了触摸滑条,发现滑条输出的值为从小到大,如下图所示的样子,这就导致从最上…

Minio使用教程

Minio MinIO 是一个高性能的对象存储服务器,用于构建云存储解决方案。它使用Golang编写,专为私有云、公有云和混合云环境设计。它是兼容Amazon S3 API的,并可以作为一个独立的存储后端或与其他流行的开源解决方案(如Kubernetes)集成。 MinIO 允许你存储非结构化数据(如图…

人工智能基础导论

人工智能基础导论 绪论 人工智能的主要流派符号主义(逻辑主义) 连接主义(仿生学派) 行为主义(控制论)符号主义:数理逻辑→逻辑演绎系统→启发式算法→专家系统→知识工程理论与技术(主流)缺点:符号主义的核心是知识表示,那么对于像感知、形象思维、模式识别等问题,…

搭建 npm 私服

背景 准备搭建一个自己的网站,放些平时练手的 demo,如果是不同项目,想要保持风格一致,或是要用到一些工具方法,就要在每个项目复制一份,不是很好维护,于是就想要搭建一个自己的 npm 私服 安装 verdaccio 1 安装 verdaccio,这是一个开源的私有 npm 注册中心,要注意的是…

C# WPF PrintDialog 打印(2)

前面https://www.cnblogs.com/yinyu5/p/18633910使用PrintVisual方法只打印了可见部分的元素,所以这里改为使用PrintDocument方法来进行打印。 需要引用System.Printing.dll 界面代码:1 <Window x:Class="WpfApp123.MainWindow"2 xmlns="http://sc…

Redis可视化工具推荐:Another Redis Desktop Manager使用教程与下载

Redis是一种高性能的Key-Value数据库,被广泛应用于缓存、消息队列等场景。尽管Redis的命令行工具功能强大,但对于许多开发者而言,使用一款可视化工具可以大大提高操作效率和用户体验。今天为大家推荐一款功能强大的Redis可视化工具——Another Redis Desktop Manager,并提供…

RISC-V篇-VSCode+qemu+gdb可视化调试Linux Kernel

https://zhuanlan.zhihu.com/p/4185359719本文发布于微信公众号:Linux底层小工,欢迎关注,获取更多原创技术文章! “VSCode+qemu+gdb调试OpenSBI确实很爽,那怎能少了调试kernel呢~~” 01 VScode调试MMU开启之前的kernel 有了调试OpenSBI的基础,再调试kernel,那设置相当简…