AcWing 338. 计数问题

文章目录

  • 题目描述
  • 问题分析
  • 代码

题目描述

AcWing 338.计数问题
给定两个整数 a a a b b b, 求 a a a b b b中所有数字中0~9的出现次数
数据范围:
0 < a, b < 100000000

输入格式

输入包含多组测试数据。

每组测试数据占一行,包含两个整数 a
和 b。
当读入一行为0 0 时表示终止,且此行不做处理
输入样例

1 10
44 497
346 542
1199 1748
1496 1403
1004 503
1714 190
1317 854
1976 494
1001 1960
0 0

输出样例

1 2 1 1 1 1 1 1 1 1
85 185 185 185 190 96 96 96 95 93
40 40 40 93 136 82 40 40 40 40
115 666 215 215 214 205 205 154 105 106
16 113 19 20 114 20 20 19 19 16
107 105 100 101 101 197 200 200 200 200
413 1133 503 503 503 502 502 417 402 412
196 512 186 104 87 93 97 97 142 196
398 1375 398 398 405 499 499 495 488 471
294 1256 296 296 296 296 287 286 286 247

问题分析

这道题让我们求一个区间的数出现的次数,那么我们可以利用前缀和的思想求得从 1 ~ n 的 某个数x的出现次数,只有用区间末端点减区间的前端点的前一个,就可以得到一个区间某个数出现的次数设计一个cout(n, x) 函数。

那我们要怎么求这个范围数的出现次数呢,可能你会想到暴力枚举,从1 ~ n一次枚举x出现了几次,最后将答案累加返回,其实不用这样。
我们只需要知道这个区间的最大值记作abcdefg,这样我们分析这一个数中x出现的位置从而找到在这个位置的所有情况即可
但是有个特殊情况当x = 0的情况下:
这时只会影响当前三位为000~abc的情况,由于要统计0的个数所以如果放任前导零的存在就会影响答案的结果,而x为其他情况即使有前导零对结果也不会造成影响
这时就要满足当求第k位为0是要保证前面不能全为0,所以000~abc 中会少000这一种情况变成001 ~ abc这里虽然有前导零但是这些前导零是已经在 k ′ k^{'} k小于k时就求过了的这里只是一种表现形式而已不会对答案造成影响

代码

在这道一种由于要知道一个数第几位前面的数,这位数和右边的数所以要熟练掌握/ %来进行

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>using namespace std;int split(int x, int k)
{int p = pow(10, k - 1);printf("左边的数:%d\n", x / p / 10);printf("从右往左第k位的数:%d\n", x / p % 10);printf("右边的数:%d\n", x % p);
}int main()
{int x, k;scanf("%d%d", &x, &k);split(x, k);return 0;
}

执行结果

输入:123456789   3
输出:
左边的数:123456
第k位的数:7
右边的数:89输入:123456789   4
输出:
左边的数:12345
从右往左第k位的数:6
右边的数:789

实现

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>using namespace std;const int N = 1e8 + 10;
int a, b;int dgt(int x)//计算x这个数有多少位
{int res = 0;while (x) res ++, x /= 10;return res;
}int cnt(int i, int x)
{int res = 0, n = dgt(i);for (int j = 1; j <= n; j ++) // 枚举j在i的第几位从后向前枚举{// p表示j后面后面有多少数int p = pow(10, j - 1), dl = i / p / 10, dj = i / p % 10, dr = i % p;//当第j位要查0的情况下,即j这里就是0了,那么就不允许前面都是0,这是非法的所以要剔除if (!(x || dl)) break;// p表示从后往前第j个位置有多少位10// dl是前面的数 dj是第j个位置的数 dr是后面的数if (x == 0 && dl) res += (dl - 1) * p;// 当要查的是0的时候就不能允许前导0的存在去掉000的情况if (x) res += dl * p;// 这就是当前面是000 ~ abc - 1的情况//下面就是当前面是abc时此时可能是最外层会被限制if ((dj == x)) res += dr + 1;if ((dj > x)) res += p;// 没有限制000 ~ 999}return res;
}int main()
{while (cin >> a >> b && a | b){if (a > b) swap(a, b);for (int i = 0; i <= 9; i ++){printf("%d ", cnt(b, i) - cnt(a - 1, i));}puts("");}return 0;
}

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

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

相关文章

vins_fusion在rviz可视化中vio与global严重不重叠的问题

原因&#xff0c;vio与global没有yaw角度同步&#xff0c;各自为政&#xff0c;两者通过一个变换T维持关系。 看着碍眼&#xff0c;所以打算改了。 之前试过几个方案&#xff0c;比如先跑一次bag&#xff0c;记录VIO与global的后验角度与偏差&#xff0c;写一个程序&#xff0c…

论文阅读《Parameterized Cost Volume for Stereo Matching》

论文地址&#xff1a;https://openaccess.thecvf.com/content/ICCV2023/papers/Zeng_Parameterized_Cost_Volume_for_Stereo_Matching_ICCV_2023_paper.pdf 源码地址&#xff1a;https://github.com/jiaxiZeng/Parameterized-Cost-Volume-for-Stereo-Matching 概述 现有的立体匹…

【产品经理】需求池和版本树

在这个人人都是产品经理的时代&#xff0c;每位入行的产品人进阶速度与到达高度各有不同。本文作者结合自身三年产品行业的经历&#xff0c;根据案例拆解产品行业的极简研发过程、需求池、版本树、产品自我优化等相关具体方法论。 一、产品研发的极简过程 1. 产品概述 产品就…

CCF编程能力等级认证GESP—C++2级—20230611

CCF编程能力等级认证GESP—C2级—20230611 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)找素数自幂数判断 答案及解析单选题判断题编程题1编程题2 单选题…

CSS第二天导读

1&#xff0c;Emmet语法 Emmet语法的前身是Zen coding&#xff0c;它使用缩写&#xff0c;来提高html / css 的编写速度&#xff0c;Vscode内部已经集成该语法 1.1&#xff0c;快速生成HTML结构语法 1.想要快速生成多个相同标签&#xff0c;加上*就可以了&#xff0c;比如 d…

智慧灯杆技术应用分析

智慧灯杆是指在传统灯杆的基础上&#xff0c;通过集成多种先进技术实现城市智能化管理的灯杆。智慧灯杆技术应用的分析如下&#xff1a; 照明功能&#xff1a;智慧灯杆可以实现智能调光、时段控制等功能&#xff0c;根据不同的需求自动调节照明亮度&#xff0c;提高照明效果&am…

铭飞CMS list 接口 SQL注入漏洞复现

0x01 产品简介 铭飞CMS是一款基于java开发的一套轻量级开源内容管理系统,铭飞CMS简洁、安全、开源、免费,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,专注为公司企业、个人站长快速建站提供解决方案 0x02 漏洞概述 铭飞CMS在5.2.10版本以前list 接口处存在sql注入…

Axure的动态面板

目录 动态面板 什么是Auxre动态模板 动态模板的步骤 应用场景 实战案例 轮播图 多功能登录界面 主界面左侧菜单栏 动态面板 什么是Auxre动态模板 动态面板是Axure中的一个重要功能&#xff0c;它允许用户创建可交互的页面&#xff0c;并模拟用户与页面的交互。通过添加元素…

Python - 搭建 Flask 服务实现图像、视频修复需求

目录 一.引言 二.服务构建 1.主函数 upload_gif 2.文件接收 3.专属目录 4.图像修复 5.gif2mp4 6.mp42gif 7.图像返回 三.服务测试 1.服务启动 2.服务调用 四.总结 一.引言 前面我们介绍了如何使用 Real-ESRGAN 进行图像增强并在原始格式 jpeg、jpg、mp4 的基础上…

计算机毕业设计 SpringBoot的医院门诊在线挂号系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

计算机网络应用层(期末、考研)

计算机网络总复习链接&#x1f517; 目录 DNS域名服务器域名解析过程分类递归查询&#xff08;给根域名服务器造成的负载过大&#xff0c;实际中几乎不用&#xff09;迭代查询 域名缓存&#xff08;了解即可&#xff09;完整域名解析过程采用UDP服务 FTP控制连接与数据连接 电…

【期末向】“我也曾霸榜各类NLP任务”-bert详解

预训练语言模型 预训练语言模型于 2015 年被首次提出&#xff08;Dai & Le,2015&#xff09;。首先我们要了解一下什么是预训练模型&#xff0c;举个例子&#xff0c;假设我们有大量的维基百科数据&#xff0c;那么我们可以用这部分巨大的数据来训练一个泛化能力很强的模型…

LV.13 D2 开发板启动流程 学习笔记

一、开发板启动过程 EMMC&#xff1a;相当于电脑的外存&#xff0c;断电不丢失 开发板上电后首先运行SOC内部iROM中固化的代码(BL0)&#xff0c;这段代码先对基本的软硬件环境(时钟等...)进行初始化&#xff0c;然后再检测拨码开关位置获取启动方式&#xff0c;然后再将对应存储…

【Python】conda镜像配置,.condarc文件详解,channel镜像

1. conda 环境 安装miniconda即可&#xff0c;Miniconda 安装包可以到 http://mirrors.aliyun.com/anaconda/miniconda/ 下载。 .condarc是conda 应用程序的配置文件&#xff0c;在用户家目录&#xff08;windows&#xff1a;C:\users\username\&#xff09;&#xff0c;用于…

3-分布式存储之Ceph

任务背景 虽然使用了分布式的glusterfs存储, 但是对于爆炸式的数据增长仍然感觉力不从心。对于大数据与云计算等技术的成熟, 存储也需要跟上步伐. 所以这次我们选用对象存储. 任务要求 1, 搭建ceph集群 2, 实现对象存储的应用 任务拆解 1, 了解ceph 2, 搭建ceph集群 3, 了…

智能优化算法应用:基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.差分进化算法4.实验参数设定5.算法结果6.…

智能守护,数据安全稳中求胜!上海迅软DSE助力家具家电行业引领潮流!

随着中国经济的蓬勃发展&#xff0c;家具家电企业正迎来“精品制造”的时代&#xff0c;业内竞争日益激烈。为了提升产品竞争力、扩大市场占有率&#xff0c;企业亟需加强对自主品牌的安全建设&#xff0c;确保品牌的自主知识产权、产品生产资料以及销售信息等核心数据不受泄漏…

如何部署Portainer容器管理工具+cpolar内网穿透实现公网访问管理界面

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…

从零开发短视频电商 AWS OpenSearch Service开发环境申请以及Java客户端介绍

文章目录 创建域1.创建域2.输入配置部署选项数据节点网络精细访问控制访问策略 获取域端点数据如何插入到OpenSearch ServiceJava连接OpenSearch Servicespring-data-opensearchelasticsearch-rest-high-level-clientopensearch-rest-clientopensearch-java 因为是开发测试使用…

VSCode 配置自动生成头文件

相关文章 VSCode 开发C/C实用插件分享——codegeex VSCode 开发C/C实用插件分享——koroFileHeader VSCode 配置自动生成头文件 一、snippets二、配置步骤三、效果展示 一、snippets 相信大家对C、C都头文件都不陌生&#xff0c;都会发现每个头文件都会包括下面的这些格式&…