首页 > 其他分享 >C. Given Length and Sum of Digits...

C. Given Length and Sum of Digits...

时间:2024-06-06 16:24:28浏览次数:35  
标签:Digits ... Given 数字 int s2 flag2 m2

原题链接

一句话题意

分别找出长度为n,每位数字和恰好为m的最小数和最大数,如果找不到输出”-1 -1“

思维

怎么确保构造的数最小/大?
怎么确保数字和恰好为m?

实施

遍历每一位,贪心地选取最大/最小的数,直到接下来的数字不足以贪心

细节

1.没有前导零
2.数字和恰好为m
3.注意边界特判

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;

    if(m==0)
    {
        if(n==1) puts("0 0");
        else puts("-1 -1");
        return 0;
    }
    int m1=m,m2=m;

    string s1,s2;
    int flag1=0,flag2=0;


    for(int j=1;j<=9;j++)
    {
        if(m1-j<=(n-1)*9)
        {
            flag1=1;
            s1+=(j+'0');
            m1-=j;
            break;
        }
    }
    for(int j=9;j>=1;j--)
    {
        if(m2-j>=0)
        {
            flag2=1;
            s2+=(j+'0');
            m2-=j;
            break;
        }
    }


    if(flag1&&flag2)
    {
        for(int i=2;i<=n;i++)
        {
            if(m1==(n-i+1)*9&&flag1)
            {
                flag1=0;
                for(int j=i;j<=n;j++) s1+='9';
            }

            if(m2==0&&flag2)
            {
                flag2=0;
                for(int j=i;j<=n;j++) s2+='0';
            }


            if(flag1)
            for(int j=0;j<=9;j++)
            {
                if(m1-j<=(n-i)*9)
                {
                    m1-=j;
                    s1+=(j+'0');
                    break;
                }
            }

            if(flag2)
            for(int j=9;j>=0;j--)
            {
                if(m2-j>=0)
                {
                    m2-=j;
                    s2+=(j+'0');
                    break;
                }
            }

        }

        cout<<s1<<" "<<s2;
    }
    else puts("-1 -1");
    return 0;
}

标签:Digits,...,Given,数字,int,s2,flag2,m2
From: https://www.cnblogs.com/pure4knowledge/p/18235486

相关文章

  • Android视频开发入门: VideoView、MediaPlayer、 FFmpeg、exoplayer...
    现在,视频功能是越来越普遍的需求。本文将提供一个关于Android视频开发的入门指南,帮助读者快速掌握视频播放、录制和处理等基本功能。1、概述在Android平台上,视频开发主要涉及以下几个方面:视频播放与控制视频录制与处理视频编解码与格式转换视频流媒体与直播接下来,我......
  • 【compshare】(3):使用UCloud(优刻得)的compshare算力平台,新增加SD-webui和大模型镜像,可
    关于UCloud(优刻得)旗下的compshare算力共享平台https://www.ucloud.cn/UCloud(优刻得)是中国知名的中立云计算服务商,科创板上市(股票代码:688158),中国云计算第一股,专注于提供可靠的企业级云服务,包括云服务器、云主机、云数据库、混合云、CDN、人工智能等服务。compshare......
  • golang 可变参数用法, handlers ...HandlerFunc
     handlers...HandlerFunc这是什么写法,与group.handle()第三个参数是[]handlerFunc是什么关系呢?下面是gin中的用法:routergroup.go//GETisashortcutforrouter.Handle("GET",path,handle).func(group*RouterGroup)GET(relativePathstring,handlers...Ha......
  • js 中 (function($){...})(jQuery) 含义
    原文链接:https://www.cnblogs.com/Jeely/p/10715089.htmljs中(function($){...})(jQuery)含义js中定义函数常用写法是functionname(arg){//arg则是匿名函数的参数。//...}调用函数时的写法是:name(arg);======================================================......
  • MJ伪造图片名(1,2,3...)
    importosdefrename_images_in_folder(root_folder):#遍历根目录forroot,dirs,filesinos.walk(root_folder):ifnotdirs:#检查当前目录下是否有子目录,没有则表示是底层子文件夹count=1forfileinfiles:......
  • 我真的从测试转成了开发......
    写在前面因为走的圈太大了,早上上班差点迟到,幸好有我每日5公里的加持,侥幸踩点进办公室,哈哈,真的好险!我开发的功能不能用了上午开始着手某功能的开发,还在写后台逻辑。结果到了下午,由于前端同学的代码冲突,打包发布后,导致我写的功能直接不能用了,瞬间emo了!套用我之前同事总说的一句......
  • 工具:一键采集 平台:TB+PDD+JD...
    什么是数据集?电商商品数据集通常是指收集自电子商务平台的商品信息的结构化数据集合。这些数据包括但不限于商品名称、价格、描述、用户评价、分类标签、卖家信息、销售量、库存量、图片链接等。数据集可以由电商平台公开提供,也可以通过网络爬虫等技术手段获得,并且经常会用于机......
  • 工具:一键采集 平台:TB+PDD+JD...
    什么是数据集?电商商品数据集通常是指收集自电子商务平台的商品信息的结构化数据集合。这些数据包括但不限于商品名称、价格、描述、用户评价、分类标签、卖家信息、销售量、库存量、图片链接等。数据集可以由电商平台公开提供,也可以通过网络爬虫等技术手段获得,并且经常会用于......
  • 为什么会收到此警告,如何解决 "此版本只能理解 SDK XML 2 以下版本,但 SDK XML...&quot;
    我刚刚更新了我当前的Android应用程序,使其使用java11、构建工具32.0.0和下面是我使用的AndroidStudio的详细信息AndroidStudioBumblebee|2021.1.1Beta5构建号:AI-211.7628.21.2111.7956428,构建于2021年11月30日运行时版本:11.0.11+0-b60-7590822x86_......
  • idea实用快捷键(持续更新...)
    文章目录1、快速输入try/catch/finally2、选中多个光标3、实现接口4、方法参数提示5、查看某个类的子类6、弹出显示查找内容的搜索框1、快速输入try/catch/finallyCtrl+Alt+T2、选中多个光标Shift+Alt+单机多选End可以全部到行尾,Home则可以全部回到行首3、......