[ARC173A] Neq Number

原题链接

题解

1.abcdef= 1 ~ a* + ab* ~ abc + abc* ~ abcd + ... + abcde * ~ abcedf

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll f[13]={0},sum[13]={0};
void solve()
{
    ll now;
    cin>>now;
    ll pre=10;
    ll pos=lower_bound(sum+1,sum+13,now)-sum-1;
    ll ans=0;
    ll top=1;
    now-=sum[pos];
    for(int i=pos;i>=0;i--)
    {
        ll tem=f[i],cnt=0;
        while((cnt+1)*tem<(now))top++,cnt++;
        now-=cnt*tem;
        if(top>=pre) top++;
        ans=ans*10+top;
        pre=top;
        top=0;
    }
    cout<<ans<<endl;
}
int main()
{
    f[0]=1;f[1]=9;sum[1]=9;
    for(int i=2;i<=12;i++)f[i]=f[i-1]*9LL,sum[i]=sum[i-1]+f[i];
    ll t;
    cin>>t;
    while(t--) solve();
    return 0;
}
posted @ 2024-03-22 20:55  纯粹的  阅读(17)  评论(0)    收藏  举报