1313:【例3.5】位数问题——(思路非常的奇特,值得一看)

【题目描述】

在所有的N位数中,有多少个数中有偶数个数字33?由于结果可能很大,你只需要输出这个答案对1234512345取余的值。

【输入】

读入一个数N(N≤1000)。

【输出】

输出有多少个数中有偶数个数字3。

【输入样例】

2

【输出样例】

73

这是一道经典的递推题目,思路非常的奇特,值得一看

解析:

该题是一道计数问题,统计结果。统计类问题做法 一般有两种:加法和乘法。加法就是一个一个去数, 虽然很容易实现,但是效率很低;乘法就是类似于递 推的做法,考虑当前答案和前面答案之间的关系。 该题如果采用加法计数就是依次判断每一个数含有 几个3,很麻烦,效率还低,我们可以采用乘法计数 。按位考虑每一个数。 我们考虑i位数的答案和i-1位数的答案,会发现两 者之间并没有直接的数学关系。如果我们考虑最后一 位上的数的情况,当最后为3的时候,那么我们需要 的是i-1位有奇数个3的数量,但是我们却只统计了偶 数个3的数量。 6 位数问题 所以该题不仅仅需要记录i位数中偶数个3的数量, 还需要记录i位数中奇数个3的数量。 设f[i]表示i位数中有奇数个3的数量 设g[i]表示i位数中有偶数个3的数量 当第i位为3时,i位数中3的数量的奇偶性和i-1位 刚好相反,即: f[i]=g[i-1] g[i]=f[i-1] 当第i位不为3时,i位数中3的数量的奇偶性和i-1 位相同,第i位不为3,那么就有9种情况,即: f[i]=f[i-1]*9 g[i]=g[i-1]*9 从而得到递推公式:

f[i]=g[i-1]+f[i-1]*9  g[i]=f[i-1]+g[i-1]*9

上代码:

#include<bits/stdc++.h>
using namespace std;int n;
int f[100000],g[100000];
int main(){f[1]=1;//一位数时奇数个三的可能性g[1]=8;//一位数时偶数个三的可能性,且最高位不能为0 cin>>n;if (n==1){//特判 cout<<g[n];return 0;}for (int i=2;i<=n;i++){f[i]=(g[i-1]+f[i-1]*9)%12345;g[i]=(f[i-1]+g[i-1]*9)%12345;}cout<<g[n]; return 0;
}

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

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

相关文章

Code-Audit(代码审计)习题记录

介绍&#xff1a; 自己懒得搭建靶场了&#xff0c;靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习&#xff0c;可以随地访问&#xff0c;本文所有的题目均来源于网站HSCSEC-Code Audit 1、习题一 题目内容如下&#xff1a; 1…

How to install a specific version of a package in R

How to install a specific version of a package in R 在使用R语言完成数据分析的过程中&#xff0c;很多时候&#xff0c;因为项目实际需要&#xff0c;我们应该指定某些库文件的安装包的版本&#xff0c;这个时候&#xff0c;我们可以基于devtools包中的函数install_version…

FX110网:easyMarkets易信被评为2023最佳外汇经纪商

easyMarkets 易信目前正在庆祝其进入行业第 23 周年&#xff0c;很高兴地宣布其在 2023 年 TradingView 经纪商奖中被授予“最佳外汇经纪商”称号&#xff0c;这是其第 51 次荣获殊荣奖项。 “我们的共同使命是为交易者提供最好的交易环境和交易工具。 得益于我们全球社区的广泛…

JQuery简介与解析

jQuery是一个快速、小巧、功能丰富的JavaScript库&#xff0c;它简化了HTML文档遍历、事件处理、动画和Ajax等操作。自从2006年由John Resig创建以来&#xff0c;jQuery已经成为Web开发中最受欢迎的JavaScript库之一。以下是对jQuery的简介和一些关键特性的解析&#xff0c;以及…

手把手将 VSCode 快捷键修改为 Eclipse 的快捷键

1.在 vscode 上方搜索栏输入 >keyboard 2. 选择图中红框的内容 3.将Eclipse的常用快捷键复制进去 { "key": "ctrld", "command": "-editor.action.addSelectionToNextFindMatch", "when": "editorFocus" }, {…

微信小程序video 点击自动全屏播放

//因为这个地址可能是图片也可能是视频 点击 图片可以预览&#xff0c;点击视频可放大全屏自动播放。 代码如下 <view v-else :class{contentImg: x.picture.length0} style"margin-top: 10px;"v-for"(x1, y1) in x.picture" :key"y"><…

selenium XPATH 使用简单例子

定位所有的 a 元素&#xff1a; //a 定位带有特定id属性的元素&#xff1a; //*[id“exampleId”] 定位带有特定class属性的元素&#xff1a; //*[contains(class, “exampleClass”)] 定位包含特定文本的元素&#xff1a; //*[text()“Example Text”] 定位包含特定部分文…

说一下 JVM 运行时数据区 ?

目录 一、程序计数器&#xff08;Program Counter Register&#xff09; 二、Java 虚拟机栈&#xff08;Java Virtual Machine Stacks&#xff09; 三、本地方法栈&#xff08;Native Method Stack&#xff09; 四、Java 堆&#xff08;Java Heap&#xff09; 五、方法区&…

我是怎么用静态IP代理为Google账号保驾护航的

我为何要使用到静态IP代理服务 我是一名IT从业者&#xff0c;在很多年前就加入了一家跨国软件公司&#xff0c;日常需要在全世界各地跟甲方沟通&#xff0c;负责的工作中重要的一块就是Google广告&#xff0c;为此公司还特意给配置了一台笔记本电脑。 目录 我为何要使用到静态…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(9)模型优化

模型训练后&#xff0c;就要进行模型优化了。 一般来讲&#xff0c;很简单&#xff0c;优化就是不换模型换参数&#xff0c;或者直接换模型。 换了之后来对比&#xff0c;最后选个最好的。 比如在本案例中&#xff0c;选择LinearRegression后&#xff0c;MSE从22下降到12&am…

ubuntu分辨率更改、开机被重置、ubuntu屏幕小

ubuntu分辨率更改 分辨率改成&#xff1a;1920x1200 xrandr --size 1920x1200 在此之前可以先输入 xrandr 看支持哪些分辨率 开机被重置 我已经设置成这样了&#xff0c; 一开机变回这个 ubuntu屏幕小 输入命令行 xrandr --size 1920x1200 这个下次重启ubuntu又会重置…

区块链笔记(二)

比特币与以太坊优劣 共同点 两者都是通过在线交易所交易并存储在各种加密钱包中的数字货币。它们也是去中心化的&#xff0c;并使用区块链的分布式账本技术。 区别 以太坊项目将区块链技术在数字货币的基础上进行了延伸&#xff0c;提出打造更为通用的智能合约平台的宏大构…

防御保护第五次作业

​​​​​​​ 1,FW1和FW3组成主备模式的双机热备 2,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 3,分公司设备可以通过总公司的移动链路和电信链路访问到DMz区的http服务器 4,分公司内部的客户端可以通过公网地址访问到内部的…

【笔记】【算法设计与分析 - 北航童咏昕教授】绪论

算法设计与分析 - 北航童咏昕教授 文章目录 算法的定义定义性质 算法的表示自然语言编程语言伪代码 算法的分析算法分析的原则渐近分析 算法的定义 定义 给定计算问题&#xff0c;算法是一系列良定义的计算步骤&#xff0c;逐一执行计算步骤即可得预期的输出。 性质 有穷性确…

使用RK3588开发板使用scp指令互传-windows与开发板互传

MobaXterm 软件网盘下载路径&#xff1a;“iTOP-3588 开发板\02_【iTOP-RK3588 开发板】开发资 料\04_iTOP-3588 开发板所需 PC 软件&#xff08;工具&#xff09;\02-MobaXterm”。 打开 MobaXterm 创建一个 Shell 会话&#xff0c;如下图所示&#xff1a; 设置完成进入终端…

NebulaGraph学习笔记-NgBatis连接

最近项目需要连接NebulaGraph图数据库获取部分数据&#xff0c;于是查看了一些相关资料&#xff0c;发现一个NgBatis框架。 NgBatis是一个使用类似MyBatisMyBatis-Plus的方式操作NebulaGraph的JavaORM框架。同时NgBatis也是一款针对NebulaGraphSpringBoot的数据库ORM框架。借鉴…

5G——物理层仿真

1.前置条件 2.仿真流程 1.填写搜索过程 解&#xff1a; 2.填写每一步细节 2.2.1 准备 解&#xff1a; &#xff08;1&#xff09;BCH &#xff08;2&#xff09;BCCH 解析&#xff1a;因为PBCH是物理广播信道&#xff0c;BCCH是用于广播系统控制信息的下行信道&#…

Facebook元宇宙探索:虚拟社交的新时代

在数字化时代的浪潮中&#xff0c;人类社交的模式和形式正在经历着翻天覆地的变化。而当下&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;正积极探索着元宇宙的未来。元宇宙被认为是虚拟世界的下一步进化&#xff0c;它将重新定义人们的社交方式、娱乐体验以…

【Python】OpenCV-图片添加水印处理

图片添加水印处理 1. 引言 图像处理中的水印添加是一种常见的操作&#xff0c;用于在图片上叠加一些信息或标识。本文将介绍如何使用OpenCV库在图片上添加水印&#xff0c;并通过详细的代码注释来解释每一步的操作。 2. 代码示例 以下是一个使用OpenCV库的简单代码示例&…

根据地图级别计算地图分辨率分母值

根据地图级别计算地图分辨率分母值 def zoom_to_scale_denom(zoom):# epsg3857 epsg900913# https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Resolution_and_Scalemap_width_in_metres 40075016.68557849 # 地球周长&#xff0c;赤道长度tile_width_in_pixels…