0pts求助(全WA)

P2602 [ZJOI2010] 数字计数

```cpp #include<bits/stdc++.h> #define int long long int a,b,c[15],d[15],ans1[10],ans2[10]; using namespace std; void init(int n,int*A){ int num[15]={0}; int w=0,k=n,ss=n; while(n){ num[++w]=n%10; n/=10; } for(int i=w;i;--i){ for(int j=0;j<10;++j) A[j]+=c[i-1]*num[i]; for(int j=1;j<num[i];++j) A[j]+=d[i]; k-=d[i]*num[i]; A[num[i]]+=k+1; } } signed main(){ cin>>a>>b; d[1]=1;c[1]=1; for(int i=2;i<=12;++i){ d[i]=d[i-1]*10; c[i]=d[i]+c[i-2]*10; } init(b,ans1); init(a-1,ans2); for(int i=0;i<=9;++i) printf("%lld ",ans1[i]-ans2[i]); return 0; } ```
by zhengjiawei @ 2023-01-25 17:49:41


|