解题不能,求助各位大佬
  • 板块P1895 数字序列
  • 楼主T_tang
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/8/21 11:25
  • 上次更新2023/10/27 14:20:24
查看原帖
解题不能,求助各位大佬
559873
T_tang楼主2022/8/21 11:25
#include<iostream>
#include<algorithm>
#include<cstring>
#define ll long long
#define maxn 2147483647
using namespace std;
ll t,n;
ll a[100005];
ll s[200005];
ll digit(ll x){
	ll ans=0;
	while(x){
		x/=10;
		ans++;
	}
	return ans;
}
void init(){
	ll cnt=0,tot=0,pos=0,len=0;
	while(a[pos]<=maxn){
		cnt++;
		tot+=digit(cnt);
		a[pos+1]=a[pos++]+tot;
	}
	for(ll i=1;i<=31268;i++){
		ll num=i,temp=digit(i);
		while(num){
			s[len+digit(num)]=num%10;
			num/=10;
		}
		len+=temp;
	}
}
int main(){
	init();
	cin>>t;
	while(t--){
		cin>>n;
		ll k=lower_bound(a+1,a+31268,n)-a;
		cout<<s[n-a[k-1]]<<endl;
	}
	return 0;
}

本机上的输出都和题解的一样,评测却是WA 0分 :( 求助!!!

2022/8/21 11:25
加载中...