蓝桥杯[OJ 2928]分糖果-CPP(贪心、字典序)

目录

一、题目描述:

二、整体思路

        (一)字典序比较规则

       (二)正确理解题意

    (三)分类讨论

三、代码


一、题目描述:

二、整体思路

        (一)字典序比较规则

        首先要知道字典序是怎么比较大小的,简单来说按以下次序进行比较:

  1. 两个字符串第一个不同的字母决定:如ab<ad,abcd<abcf
  2. 两个字符串同样位置没有不同的字母,按长度决定:如ab<abc,sde<sdeg    

       (二)正确理解题意

        其次要明白题目在说啥,实际上就是要输出一个长度最长的,字典序比其他糖果组成的字符串大的但是相差最小的字符串。比如abd字典序大于abc,但是不是字典序相差最小的(c与d),字典序相差最小的是abbcd与a(a与b)。

    (三)分类讨论

        为了方便比较,先把所有糖果按字典序排序

  1. 遍历所有糖果,每个人拿到的第一颗糖果有不同的。那么不管后面有没有糖果,最后拿到糖果的哪个人就是字典序最大的,如
    n=6,x=3,S=“aabdas”
    每个人第一颗糖果情况为:
    a
    a
    b
    这时无论剩下的糖果d、a、s怎么分配,b都是字典序最大的糖果组成的字符串,直接输出b即可
  2. 每个人拿到的第一颗糖果相同,剩下的糖果每颗都是相同的(剩下的糖果不一定与每个人第一颗糖果相同),那么就要把糖果尽可能分散到每个人手里来使得目标字符串长度最小,如
    n=6,x=3,S=“aaabbb”
    最佳分配情况为
    ab
    ab
    ab
  3. 每个人拿到的第一颗糖果相同,剩下的糖果存在不相同的糖果,如样例输入的情况,那么就要按字典序把相同的糖果平均分配给每个人,直到剩下糖果堆里出现第一种数量不足以均分给所有人的糖果。
    此时把剩下所有糖果都分给同一个人,确保字典序相差最小。
    如n=6,x=2,S="aabccd"
    abccd
    a

三、代码

#include <bits/stdc++.h>
using namespace std;
int main()
{// 请在此输入您的代码int n,x;cin>>n>>x;string s;cin>>s;sort(begin(s),end(s));if(s[0]!=s[x-1]){cout<<s[x-1];//第一个糖果有不同的情况}else{//第一颗糖果都相同if(s[x]==s[n-1]){//第一颗糖果相同,剩下的糖果都是同一种糖果cout<<s[x];for(int i=x;i<=n-1;i+=x){//剩下的糖果均分给每个人cout<<s[i];}}else{//最后一种情况,剩下的糖果全部堆给一个人for(int i=x-1;i<=n-1;i++){cout<<s[i];}}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/273835.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

掌握Mongodb,看完这篇文章就够了

目录 1.概念 2.操作 2.1数据库操作 2.2集合操作 2.3数据操作 3.查询 4.常用技术 5.python与MongoDB 1.概念 MongoDB是一种非关系型数据库&#xff08;NoSQL&#xff09;&#xff0c;它以灵活的文档存储格式&#xff08;BSON&#xff09;和强大的查询能…

Python网站的搭建和html基础

1.Python网站代码及讲解 一般我们搭建小型的网站就用flask库就行了。 &#xff08;1&#xff09;安装flask库 安装完python后&#xff0c;按住windows徽标键和r,弹出“运行”&#xff0c;在里面输入cmd。 回车打开&#xff0c;输入“pip install flask”。 &#xff08;2&am…

Python爬虫实战第三例【三】【上】

零.实现目标 爬取视频网站视频 视频网站你们随意&#xff0c;在这里我选择飞某速&#xff08;狗头保命&#xff09;。 例如&#xff0c;作者上半年看过的“铃芽之旅”&#xff0c;突然想看了&#xff0c;但是在正版网站看要VIP&#xff0c;在盗版网站看又太卡了&#xff0c;…

POS 之 最终确定性

Gasper Casper 是一种能将特定区块更新为 最终确定 状态的机制&#xff0c;使网络的新加入者确信他们正在同步规范链。当区块链出现多个分叉时&#xff0c;分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。 最终确定性 最终确定性是某些区块的属性&#xff0c;意味…

【Appium问题】每次启动appium都会安装一次uiautomator

问题 每次启动appium&#xff0c;都需要安装一次uiautomator2比较麻烦 解决 在配置文件capabilities 中增加参数skipServerInstallationTrue

如何实现无公网ip环境使用vscode远程ssh内网Linux系统写代码

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

Java语法学习六之继承和多态(重要)

继承 为什么需要继承 Java中使用类对现实世界中实体来进行描述&#xff0c;类经过实例化之后的产物对象&#xff0c;则可以用来表示现实中的实体&#xff0c;但是现实世界错综复杂&#xff0c;事物之间可能会存在一些关联&#xff0c;那在设计程序是就需要考虑。 比如&#x…

3.11_C++_day1_作业

作业要求&#xff1a; 程序代码&#xff1a; #include <iostream> #include <string.h>using namespace std;int main() {int a0,b0,c0,d0,e0;//分别记录字符串中的大写&#xff0c;小写&#xff0c;数字&#xff0c;空格&#xff0c;其他字符个数string str;cha…

五、OpenAI实战之Assistants API

在8线小城的革委会办公室里&#xff0c;黑8和革委会主任的对话再次展开。 黑8&#xff1a;主任&#xff0c;您知道吗&#xff1f;除了OpenAI API&#xff0c;现在还有一项新的技术叫做Assistants API&#xff0c;它可以帮助我们更好地进行对话和沟通。 主任&#xff1a;Assis…

Milvus 向量数据库实践 - 1

假定你已经安装了docker、docker-compose 环境 参考的文档如下&#xff1a; Milvus技术探究 - 知乎 MilvusClient() - Pymilvus v2.3.x for Milvus 一文带你入门向量数据库milvus 一、在docker上安装单机模式milvus数据库 1、 进入milvus官网&#xff1a; Install Milvus Stand…

关于遗传力常见的误解

大家好&#xff0c;我是邓飞&#xff0c;今天看了一篇非常好的文章&#xff0c;介绍了遗传力相关概念和计算方法&#xff0c;里面提到了常见的误解&#xff0c;这里汇总一下。 文献链接&#xff1a;https://excellenceinbreeding.org/sites/default/files/manual/EiB-M2_Herit…

数据结构---复杂度(2)

1.斐波那契数列的时间复杂度问题 每一行分别是2^0---2^1---2^2-----2^3-------------------------------------------2^(n-2) 利用错位相减法&#xff0c;可以得到结果是&#xff0c;2^(n-1)-1,其实还是要减去右下角的灰色部分&#xff0c;我们可以拿简单的数字进行举例子&…

神经网络实战前言(补充)

深度学习 深度学习是特殊的机器学习&#xff0c;使用复杂的、多层神经网络进行学习。深度神经网络&#xff08;DNN&#xff09;&#xff0c;每层学习的信息的复杂度是不断增加的。例如面部识别&#xff0c;第一层识别眼睛、第二层识别鼻子&#xff0c;直到所有的面部特征识别完…

力扣题目训练(18)

2024年2月11日力扣题目训练 2024年2月11日力扣题目训练561. 数组拆分566. 重塑矩阵572. 另一棵树的子树264. 丑数 II274. H 指数127. 单词接龙 2024年2月11日力扣题目训练 2024年2月11日第十八天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;包括简单题3道、中等…

如何使用宝塔面板搭建Discuz并结合cpolar实现远程访问本地论坛

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…

2024暑期实习八股笔记

文章目录 自我介绍MySQL索引索引种类、B树聚簇索引、非聚簇索引联合索引、最左前缀匹配原则索引下推索引失效索引优化 日志、缓冲池redo log&#xff08;重做日志&#xff09;刷盘时机日志文件组 bin log&#xff08;归档日志&#xff09;记录格式写入机制 两阶段提交undo log&…

Spring Security的API Key实现SpringBoot 接口安全

Spring Security的API Key实现SpringBoot 接口安全 Spring Security 提供了各种机制来保护我们的 REST API。其中之一是 API 密钥。API 密钥是客户端在调用 API 调用时提供的令牌。 在本教程中&#xff0c;我们将讨论如何在Spring Security中实现基于API密钥的身份验证。 API…

FLatten Transformer_ Vision Transformer using Focused Linear Attention

paper: https://arxiv.org/abs/2308.00442 code: https://github.com/LeapLabTHU/FLatten-Transformer 摘要 当将transformer模型应用于视觉任务时&#xff0c;自注意的二次计算复杂度( n 2 n^2 n2)一直是一个持续存在的挑战。另一方面&#xff0c;线性注意通过精心设计的映射…

Python与FPGA——局部二值化

文章目录 前言一、局部二值化二、Python局部二值化三、FPGA局部二值化总结 前言 局部二值化较全局二值化难&#xff0c;我们将在此实现Python与FPGA的局部二值化处理。 一、局部二值化 局部二值化就是使用一个窗口&#xff0c;在图像上进行扫描&#xff0c;每扫出9个像素求平均…

CVE-2021-31440:eBPF verifier __reg_combine_64_into_32 边界更新错误

文章目录 前言漏洞分析构造 vuln reg 漏洞利用漏洞修复参考 前言 影响版本&#xff1a;Linux 5.7 ~ 5.11.20 8.8 编译选项&#xff1a;CONFIG_BPF_SYSCALL&#xff0c;config 所有带 BPF 字样的编译选项。General setup —> Choose SLAB allocator (SLUB (Unqueued Allocat…