RT,一直零分
最令我百思不得其解的是这两份代码本地运行在 l≤l≤r≤10 的情况下输出全部一样,但在题上的Subtask #1中第一份WA,第二份AC
第一份:
#include<bits/stdc++.h>
using namespace std;
long long ans[1000005],w[11];
long long t,n,i,j,k,x,p,s=1;
int main()
{
scanf("%lld",&t);
x=1;w[1]=1;i=0;n=1e6;
while(1)
{
for(k=1;k<=s;k++)
{
for(j=x;j>0;j--)
{
ans[++i]=ans[i-1]+w[j];
if(i>n)break;
}
if(i>n)break;
}
if(i>n)break;
x=0;p=++s;
while(p) w[++x]=p%10,p/=10;
}
for(i=1;i<=t;i++)
{
int l,r;
scanf("%d%d",&l,&r);
printf("%lld\n",ans[r]-ans[l-1]);
}
return 0;
}
第二份: #include<bits/stdc++.h> using namespace std; int n,i,s,k=1; int a[10001],b[10001],x[10001],y[10001]; signed main() { for(i=1;i<11;i++) { a[i]=k;s++; if(s>=k)s=0,k++; } cin>>k>>k>>s; for(i=k;i<=s;i++) n+=a[i]; cout<<n; return 0; }