题解:P12835 [蓝桥杯 2025 国 B] 蓝桥星数字
fish_love_cat · · 题解
随机跳题。
首先容易发现确定最高位后本质上是一个五进制数的转换,我们只需要把后面的五进制数逐位映射就可以得到正确解。
定长的数字数量是固定的容易计算,于是我们可以确定答案长度,然后暴力枚举最高位取值即可。
时间复杂度应该是
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
long long n;
cin>>n;
int siz=2,b=5;
while(n>b*9)n-=b*9,b*=5,siz++;
int st=1;
while(n>b)n-=b,st++;
cout<<st;
n--;
vector<int>ve;
bool op=1^(st&1);
while(--siz){
ve.push_back(n%5);
n/=5;
}
reverse(ve.begin(),ve.end());
for(int i:ve)
cout<<i*2+op,op^=1;
return 0;
}
// 合図で るらったったった
// 繰り返して 回ったったった
// 君が居そうな氷漬けの夢
// 迷走 昏いステップ
// るらったったった
// 寂しくて 笑ったったった
// 踏み出すままに汚せ 今は凍えぬように