专栏文章
题解:CF1567D Expression Evaluation Error
CF1567D题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipcmvbn
- 此快照首次捕获于
- 2025/12/03 09:49 3 个月前
- 此快照最后确认于
- 2025/12/03 09:49 3 个月前
题目传送门:CF1567D Expression Evaluation Error
Solution:
新知引入:
十一进制:有 11个数(符号)。
十进制下 ,而十一进制下 。
十进制下 ,而十一进制下 。
对于以上文段,我们可以观察到如果我们将 拆分成尽量少的进位,就可以使答案最优。
题目解析:
我们可以贪心的从高位贪起,每次找到比他小、离他最近的 的幂,保证进位数尽量少。
注意:题目中说要求要正整数,所以查找该数 的幂时,一定要为其他数留出位置!
Code:
CPP#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--){
int s,n,p;
cin>>s>>n;
while(n--){
if(!n){
cout<<s<<'\n';
break;
}
else p=pow(10,(int)log10(s-n)),cout<<p<<' ';
s-=p;
}
}
return 0;
}
完结撒花。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...