CF 1567D. Expression Evaluation Error

Problem - 1567D - Codeforces

 

题意:

给出s和n

请构造n个十进制正整数,满足他们在十进制下的和等于s,且在十一进制下的和最大

 

如果n<=s的数位和,那么只要不把一个高位拆成10个低一位,在十一进制下的和都是一样的

这给我们的启示是尽可能不要拆高位,当因为正数限制不得不拆高位时再拆

所以让前n-1个数都是尽可能大的10的幂次,最后的都给第n个数即可

 

复制代码
#include<bits/stdc++.h>

int main()
{
    int T,s,n,x;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&s,&n);
        for(int i=1;i<n;++i)
        {
            x=pow(10,(int)log10(s-(n-i)));
            printf("%d ",x);
            s-=x;
        }
        printf("%d\n",s);
    }
}
复制代码

 

posted @   TRTTG  阅读(45)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2020-10-02 UVA10325 The Lottery
2020-10-02 CF979C Kuro and Walking Route
点击右上角即可分享
微信分享提示