题解 | #简单输出#
简单输出
https://ac.nowcoder.com/acm/problem/21612
#include<bits/stdc++.h>
#define endl '\n'
#define ll long long
using namespace std;
ll a[10];
int b[10];
void get(int n,int s)
{
int t=0;
int m=n,g=0;
while(m)
{
t++;
g=m%10,m/=10;
}
for(int i=1;i<=9;i++)a[i]+=1ll*s*b[t-1];
for(int i=1;i<g;i++)a[i]+=1ll*s*(b[t]-b[t-1]);
a[g]+=1ll*s*(n-g*(b[t]-b[t-1])+1);
}
void solve(int n,int op)
{
int j;
for(int i=1;i<=n;i=j+1)
{
j=n/(n/i);
get(j,op*n/i);
get(i-1,-op*n/i);
}
}
int main()
{
int l,r;
cin>>l>>r;
int ans=1;
for(int i=1;i<10;i++){
b[i]=b[i-1]+ans;
ans*=10;
}
solve(r,1);
solve(l-1,-1);
cout<<"hello world";
}
写了四个小时的代码居然过了(滑稽)