题解 P1239 【计数器】

· · 题解

蒟蒻的题解

这道题如果数据点小一点就好

实际上我没有AC

TLE了一个点

先看代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[10]={0};
    for(int i=1;i<=n;i++)//处理每一位数
    {
        int l=i;//代替i
        while(l>=10)//暴力枚举每这个数
        {
            int xs=l%10;//取出最后一位
            l=l/10;
            a[xs]++;//对应数加上
        }
        a[l]++;//剩下的哪一位再处理
    }
    for(int i=0;i<=9;i++)  cout<<a[i]<<endl;
}

一定要用O2,否则会TLE一个点。

也可以手打玄学优化