PID11 / 计数的梦 ☆

来源:互联网 发布:微信请帖 html5 源码 编辑:程序博客网 时间:2024/05/17 01:52

https://www.rqnoj.cn/problem/11

数据范围小,暴力时间复杂度为5e6,完全可以暴力;

PID11 / 计数的梦
  • 提交你的代码
  • 查看讨论和题解
   
题目描述

Bessie 处于半梦半醒的状态。过了一会儿,她意识到她好像在数羊,不能入睡。Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码:每一个数码在计数的过程中出现过多少次?

给出两个整数 M 和 N (1 <= M <= N <= 2,000,000,000 以及 N-M <= 500,000),求每一个数码出现了多少次。

例如考虑序列 129..137: 129, 130, 131, 132, 133, 134, 135, 136, 137。统计后发现:

1x0 1x5

10x1 1x6

2x2 1x7

9x3 0x8

1x4 1x9

输入格式

共一行,两个用空格分开的整数 M 和 N

输出格式

共一行,十个用空格分开的整数,分别表示数码(0..9)在序列中出现的次数。

/* ***********************************************Author        :Lu_ckyCreated Time  :2016年05月30日 星期一 23时25分31秒File Name     :main.cpp************************************************ */#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>#define LL long longusing namespace std;const int SIZE=1e3+10;const int maxn=1<<30;int sum[10];int main(){    //freopen("in.txt","r",stdin);    //freopen("out.txt","w",stdout); int n,m;while(scanf("%d%d",&n,&m)!=EOF){memset(sum,0,sizeof(sum));for(int i=n;i<=m;i++){int x=i;while(x){sum[x%10]++;x/=10;}}printf("%d",sum[0]);for(int i=1;i<10;i++)printf(" %d",sum[i]);}    return 0;}


0 0