CF1567D. Expression Evaluation Error(思维 贪心)

简介: CF1567D. Expression Evaluation Error(思维 贪心)

linkkkkk

题意:

给出s , n要求将s拆成n个数,使得这些数的和是s并且按照11进制计算得到的和最大。


思路:

如果将10拆成了1 + 9,那么和就从( 10 ) 11 = 11变成了( 9 + 1 ) 11,损失了1.

所以尽量将同一位上的整数放在一起,比如123 = 100 + 20 + 3

如果不得不拆的话,就尽量在较低的高位中拆分,将100拆成10 + 90比将100拆成99 + 1损失小。前者是1 0 11 + 9 0 11 = 1 ∗ 11 + 9 ∗ 11 = 110,后者是9 9 11 + 1 11 = 1 ∗ 1 + 9 ∗ 1 + 9 ∗ 11 = 109

代码:

int main() {
    int _=read;
    while(_--){
        int s=read,n=read;
        vector<int>res;//记录答案
        int x=1e9;
        while(x>=1){//从高位往低位划分,尽量按照整数位划分,如果必须要拆分的话,拆分损失小的低位
            if(n==1){//只剩一个数,直接输出就好
                res.push_back(s);break;
            }
            if(s-x<n-1){//保证剩下的能够凑齐
                x/=10;
                continue;
            }
            res.push_back(x);
            s-=x;n--;
        }
        for(auto t:res) cout<<t<<" ";
        puts("");
    }
    return 0;
}
目录
相关文章
|
5月前
|
人工智能 BI
CF 1561 D. Up the Strip(数学+思维)
【7月更文挑战第5天】
55 10
|
6月前
CF 1538 G. Gift Set (贪心+思维)
【6月更文挑战第14天】
39 0
|
7月前
|
数据可视化
R语言马尔可夫链(MARKOV CHAIN, MC)模拟赌徒破产模型GAMBLER’S RUIN PROBLEM可视化
R语言马尔可夫链(MARKOV CHAIN, MC)模拟赌徒破产模型GAMBLER’S RUIN PROBLEM可视化
|
机器学习/深度学习 算法
CF1029A Many Equal Substrings(kmp!!!!最通俗易懂的文章模板)
CF1029A Many Equal Substrings(kmp!!!!最通俗易懂的文章模板)
58 0
|
人工智能 BI
CF761D Dasha and Very Difficult Problem(构造 思维)
CF761D Dasha and Very Difficult Problem(构造 思维)
85 0
|
人工智能 BI
CF1398C. Good Subarrays(思维 前缀和)
CF1398C. Good Subarrays(思维 前缀和)
113 0
CF1341C. Nastya and Strange Generator(思维 模拟 构造)
CF1341C. Nastya and Strange Generator(思维 模拟 构造)
88 0
|
Windows
CF1343E. Weights Distributing(最短路 枚举 思维)
CF1343E. Weights Distributing(最短路 枚举 思维)
85 0