首页 > 其他分享 >统计数字出现的次数

统计数字出现的次数

时间:2023-10-28 23:44:07浏览次数:24  
标签:10 输出 int 整数 次数 出现 输入 统计数字

输入一个长度不超过100000位的整数,接下来再输入n个询问,每个询问输入整数l, r, x。

对于每个询问,输出原数中从第l位数到第r位数中x出现的次数。

【数据范围】1≤l≤r≤10^5, 1≤n≤10^5, 0≤x≤9

输入格式
第一行包含一个整数n。
第二行是一个不超过100000位的整数。
接下来n行,每行包含三个整数l,r,x,每个数之间用一个空格隔。

输出格式
共n行,每行输出一个询问的结果。

输入:
2
1234234123
1 2 1
2 6 2

输出:
1
2

思路

  1. 用常规方法会超时
  2. 要用前缀和的思路
  3. x不固定,所以要用10行的二维数组
#include<bits/stdc++.h>

using namespace std;

int a[10][100010];//第i(0~9)行代表数字i出现次数的前缀和

int main() {
    int n;
    cin >> n;
    string s;
    cin >> s;
    int len = s.size();

    //初始化第0列
    for (int r = 0; r <= 9; r++) {
        a[r][0] = 0;
    }
    a[s[0] - '0'][0] = 1;

    //依次取得第1列开始的每个字符
    for (int i = 1; i < len; i++) {
        //将a的第i列修改成其前一列
        for (int r = 0; r <= 9; r++) {
            a[r][i] = a[r][i - 1];
        }
        a[s[i] - '0'][i]++;
    }

    for (int i = 1; i <= n; i++) {
        int l, r, x;
        scanf("%d %d %d", &l, &r, &x);
        // 注意:
        // 1. a[x][r - 1] - a[x][l - 1]的值不含第l-1列,所以要判断是否+1
        // 2. 用cout会超时
        printf("%d\n", a[x][r - 1] - a[x][l - 1] + (s[l - 1] == x + '0' ? 1 : 0));
    }
    return 0;
}

标签:10,输出,int,整数,次数,出现,输入,统计数字
From: https://www.cnblogs.com/algorithm-hu/p/17795335.html

相关文章

  • ArcMap属性表出现乱码情况的解决
      本文介绍ArcMap软件打开图层的属性表后,出现字段中汉字乱码情况的解决方法。  有时在使用ArcMap软件时,会发现一些图层的属性表中,原本应该是中文的字段却出现乱码的情况;如下图所示,其中NAME99一栏应该是图层中各个要素对应的汉语名称,但却出现了数字、符号等乱码。  针对这......
  • EF出现错误:An error occurred while updating the entries. See the inner exception
    问题:EF出现错误Anerroroccurredwhileupdatingtheentries.Seetheinnerexceptionfordetails场景:适用Excel批量导入数据时,提示了以上错误解决思路:1、查看是否有重复的主键2、是否有不可为空的字段没有赋值3、字段内容是否超出长度限制......
  • #yyds干货盘点# LeetCode程序员面试金典:最小操作次数使数组元素相等 II
    题目给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最小操作数。在一次操作中,你可以使数组中的一个元素加1或者减1。 示例1:输入:nums=[1,2,3]输出:2解释:只需要两次操作(每次操作指南使一个元素加1或减1):[1,2,3] => [2,2,3] => [2,2,2]示......
  • java项目树出现了红色时针标记,run mian方法时无反应
     java的左侧项目树出现了红色的时针标记,导致java类的代码中String、System等关键字出现红色错误, 解决办法,右键src--markdirectoryas--sourceroot,即可  后续问题:runmian方法时无反应逻辑、配置等都没问题,就是死活没反应。看来一堆教程也没个有用!!! 直接关掉项......
  • qt 设置背景图片,图片出现锯齿
    qt给控件添加背景图片,通过有3种方式background-image;border-image;image其中通常用border-image;image。使用border-image,会出现图片失真,锯齿状严重ui->pushButton->setStyleSheet(“QPushButton{border-image:url(:/images/XXX.png);}”);使用image,会有边框,不适合qpushBu......
  • GUI_DOWNLOAD函数导出EXCEL内容出现了串列
    请教个问题 ,我现在ZPA400这个程序, 用 GUI_DOWNLOAD 下载的EXCEL文件,内容出现了串列,结果如下 导致串列的具体字段为:ZHR018301字段内容为:应安保管控调整要求,员工进入厂区禁止携带智能手机,警卫自行拆除闸机、移位监控、搬运手机柜节省RMB1200元,按奖惩规定5.3.4.25节省费用......
  • 【算法题】只出现一次的数字 III
    题目:给你一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。你可以按任意顺序返回答案。你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。示例1:输入:nums=[1,2,1,3,2,5]输出:[3,5]解释:[5,3]也是......
  • #include <ntifs.h>出现PEPROCESS redefinition问题处理
    如果在自己的程序中,即包含ntddk.h和ntifs.h的时候,编译的时候会出现如下编译错误:7600.16385.0\inc\ddk\ntifs.h(85):errorC2371:'PEPROCESS':redefinition;differentbasictypes,7600.16385.0\inc\ddk\wdm.h(79):seedeclarationof'PEPROCESS'解决方法是先includent......
  • 配置tomcat出现404错误
    应用程序部署错误:请确保应用程序已正确部署到Tomcat的webapps目录中。检查应用程序的war文件或目录是否位于正确的位置。上下文路径错误:如果应用程序部署到了Tomcat的webapps目录中的子目录中,您需要确保正确配置了应用程序的上下文路径。默认情况下,上下文路径是应用程序的名......
  • 显示器出现横纹的解决办法
    显示器出现横条纹的0成本解决方案_哔哩哔哩_bilibili电视屏幕出现横纹?先不要着急找人修,自己动手就可以_哔哩哔哩_bilibili......