蓝桥云客第 5 场 算法季度赛

题目:

2.开赛主题曲【算法赛】 - 蓝桥云课

问题描述

蓝桥杯组委会创作了一首气势磅礴的开赛主题曲,其歌词可用一个仅包含小写字母的字符串 S 表示。S 中的每个字符对应一个音高,音高由字母表顺序决定:a=1,b=2,...,z=26。字母越靠后,音高越高。

为了增强歌曲感染力,组委会希望从中选取一段子串作为副歌。该子串需满足以下条件:

  • 所有字母都必须唯一。

此外,若副歌包含“lanqiobe”的前缀(例如“l”、“la”、“lan”等),则可额外获得创作灵感加成:

  • “l”: 10 分
  • “la”: 20 分
  • “lan”: 30 分
  • “lanq”: 40 分
  • “lanqi”: 50 分
  • “lanqio”: 60 分
  • “lanqiob”: 70 分
  • “lanqiobe”: 80 分

注意:创作灵感加成只能加一次,且只加最高的那个分数。例如,如果副歌是“la”,只会加 20 分,而不会再加上 10 分。

副歌的感染力 = 所有字母对应的音高之和 + 最高的创作灵感加成。

现在,请你找出最佳副歌子串。若有多个满足条件的子串,则输出字典序最小的一个。

输入格式

第一行包含一个正整数 NN ( 1≤N≤2×105 ),表示字符串 S 的长度。

第二行包含一个仅由小写字母所组成的字符串 S,长度为 N。

输出格式

输出一个字符串,表示最佳副歌子串。如果有多个满足条件的子串,则输出字典序最小的那个。

样例输入

8
lbcaccla

样例输出

cla

运行限制

语言最大运行时间最大运行内存
C++1s256M
C1s256M
Java2s256M
Python33s256M
PyPy33s256M
Go3s256M
JavaScript3s256M

总通过次数: 136  |  总提交次数: 464  |  通过率: 29.3%

难度: 简单   标签: 模拟, 暴力

思路:

1.首先要找出不重复出现字符的字符,以每一个字符为结尾作为子串。

2.利用桶思维,发现出现重复的字符直接break

3.有八个对应字符串得分,我们可以从最大个的开始比较。因为只增加最大得分。

4.感染力和字符串的更新,字典序的比较是很基础的,用stl比较就不多说了。(注意:只有字符串长度一样时候才能直接比较)

代码如下:

#include <iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<map>
using namespace std;
int n;
int ans = -1;  
string s;
string ans_s;
bool mem[30];
int main()
{

  cin >> n;
  cin >> s;
  for(int i = 0 ; i < n ; i++)
  {
	  memset(mem,false,sizeof(mem));
	  int sum = 0;
	  string sc;
	  for(int j = i ; j >= 0 ; j--)
	  {
	    int num = s[j] - 'a' + 1;
	    if(mem[num] == false)
	    {
	        mem[num] = true;
	        sc += s[j];
	        sum += num; 
	    }
	    else
	    break;
	  }
	  reverse(sc.begin(),sc.end());//由于子串是从后往前加,与正常的子串相反,所以要转置一下。
	    if (sc.size() >= 8 && sc.find("lanqiobe")!=string::npos)
	    sum += 80;
	    else if (sc.size() >= 7 && sc.find("lanqiob")!=string::npos)
	      sum += 70;
	    else if (sc.size()>=6 && sc.find("lanqio")!=string::npos) 
	    sum += 60;
	    else if (sc.size()>=5 && sc.find("lanqi")!=string::npos)
	     sum += 50;
	    else if (sc.size()>=4 && sc.find("lanq")!=string::npos)
	    sum += 40;
	    else if (sc.size()>=3 && sc.find("lan")!=string::npos) 
	    sum += 30;
	    else if (sc.size()>=2 && sc.find("la")!=string::npos) 
	    sum += 20;
//	    cout << "以" << i << "为结尾       "<<"出现的子串:" << sc << endl;
	    if(sum > ans)//感染力更大 
	    {
	    	ans = sum;
	    	ans_s = sc;
		}
		else if(sum == ans)//感染力相等,比较字典序 
		{
			if(sc.size() < ans_s.size())//比较长度 
			{
				ans_s = sc;
			}
			else if(sc.size() == ans_s.size() && sc < ans_s)
			{
				ans_s = sc;
			}
		}
	}
  
  
  cout << ans_s;
  // 请在此输入您的代码
  return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络 (37)TCP的流量控制

前言 计算机网络中的TCP&#xff08;传输控制协议&#xff09;流量控制是一种重要机制&#xff0c;用于确保数据在发送方和接收方之间的传输既高效又稳定。 一、目的 TCP流量控制的主要目的是防止发送方发送数据过快&#xff0c;导致接收方无法及时处理&#xff0c;从而引起数据…

【Elasticsearch7.11】postman批量导入少量数据

JSON 文件内的数据格式&#xff0c;json文件数据条数不要过多&#xff0c;会请求参数过大&#xff0c;最好控制再10000以内。 {"index":{"_id":"baec07466732902d22a24ba01ff09751"}} {"uuid":"baec07466732902d22a24ba01ff0975…

Spring Boot 支持哪些日志框架

Spring Boot 支持多种日志框架&#xff0c;主要包括以下几种&#xff1a; SLF4J (Simple Logging Facade for Java) Logback&#xff08;默认&#xff09;Log4j 2Java Util Logging (JUL) 其中&#xff0c;Spring Boot 默认使用 SLF4J 和 Logback 作为日志框架。如果你需要使…

AIDD - 人工智能药物设计 -深度学习赋能脂质纳米颗粒设计,实现高效肺部基因递送

Nat. Biotechnol. | 深度学习赋能脂质纳米颗粒设计&#xff0c;实现高效肺部基因递送 今天为大家介绍的是来自美国麻省理工和爱荷华大学卡弗医学院团队的一篇论文。可离子化脂质&#xff08;ionizable lipids&#xff09;是脂质纳米颗粒&#xff08;lipid nanoparticles&#…

【SVN】版本发布快捷操作

摘要&#xff1a;因为每次发版都需要制作一份相同的文件夹&#xff0c;而大部分的包都不需要变更&#xff0c;但是文件又非常大&#xff0c;记录自己的操作经验。 首先在SVN Repository Browser 界面把上一次的版本复制一份&#xff0c;复制的时候重命名为新的版本号 右击要复…

AR 眼镜之-拍照/录像动效切换-实现方案

目录 &#x1f4c2; 前言 AR 眼镜系统版本 拍照/录像动效切换 1. &#x1f531; 技术方案 1.1 技术方案概述 1.2 实现方案 1&#xff09;第一阶段动效 2&#xff09;第二阶段动效 2. &#x1f4a0; 默认代码配置 2.1 XML 初始布局 2.2 监听滑动对 View 改变 3. ⚛️…

HTML5实现好看的端午节网页源码

HTML5实现好看的端午节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 端午节由来界面1.4 端午节习俗界面1.5 端午节文化界面1.6 端午节美食界面1.7 端午节故事界面1.8 端午节民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 H…

Android使用系统消息与定时器实现霓虹灯效果

演示效果: 界面设计: 在帧布局FrameLayout中添加6个TextView 依次设置这6个TextView的宽&#xff0c;高&#xff0c;权重 也可在XML中直接设置 添加自定义颜色 关联自定义颜色到数组变量 关联6个TextView控件到数组变量 处理自定义系统消息 Handler _sysHandler new Han…

多活架构的实现原理与应用场景解析

一、多活架构为何如此重要? 企业的业务运营与各类线上服务紧密相连,从日常的购物消费、社交娱乐,到金融交易、在线教育等关键领域,无一不依赖于稳定可靠的信息系统。多活架构的重要性愈发凸显,它宛如一位忠诚的卫士,为业务的平稳运行保驾护航。 回想那些因系统故障引发的…

【JVM-2.2】使用JConsole监控和管理Java应用程序:从入门到精通

在Java应用程序的开发和运维过程中&#xff0c;监控和管理应用程序的性能和资源使用情况是非常重要的。JConsole是Java Development Kit&#xff08;JDK&#xff09;自带的一款图形化监控工具&#xff0c;它可以帮助开发者实时监控Java应用程序的内存、线程、类加载以及垃圾回收…

《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识

目录 2.1 几何学 向量的内积和外积 旋转矩阵 旋转向量 四元数 李群和李代数 SO(3)上的 BCH 线性近似式 2.2 运动学 李群视角下的运动学 SO(3) t 上的运动学 线速度和加速度 扰动模型和雅可比矩阵 典型算例&#xff1a;对向量进行旋转 典型算例&#xff1a;旋转的复合 2.3 …

如何使用高性能内存数据库Redis

一、详细介绍 1.1、Redis概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。Redis支持多种类型的数据结构&#xff0c;如字符串&#xff08;strings&#xff09;、哈希&am…

C++ vtordisp的应用场景

文章目录 问题代码1. 基本概念回顾2. 应用场景虚继承与虚函数并存的类层次结构 3. 编译器相关考虑 问题代码 #include <iostream> using namespace std;class base { public:base() {}virtual void show() { cout << "base:: show"<<endl; } priv…

数据安全与隐私:Facebook在技术创新中的新挑战

在数字化高速发展的今天&#xff0c;数据安全与隐私保护成为社会关注的核心议题之一。作为全球最大的社交媒体平台之一&#xff0c;Facebook&#xff08;现为Meta&#xff09;在技术创新和用户体验优化的同时&#xff0c;也面临着前所未有的数据安全挑战。​ 技术创新中的数据…

SQL从入门到实战-2

高级语句 窗口函数 排序窗口函数 例题二十九 select yr,party,votes, rank() over (PARTITION BY yr ORDER BY votes desc) as pson from ge where constituency S14000021 order by party,yr 偏移分析函数 例题三十 select name,date_format(whn,%Y-%m-%d) data, confi…

爬虫基础之爬取歌曲宝歌曲批量下载

声明&#xff1a;本案列仅供学习交流使用 任何用于非法用途均与本作者无关 需求分析: 网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载 (gequbao.com) 爬取 歌曲名 歌曲 实现歌手名称下载所有歌曲 本案列所使用的模块 requests (发送…

django基于Python对西安市旅游景点的分析与研究

基于Django框架和Python语言对西安市旅游景点进行的分析与研究&#xff0c;是一个结合现代Web技术和数据分析能力的综合性项目。 一、项目背景与意义 随着旅游业的快速发展&#xff0c;对旅游景点的深入分析和研究变得越来越重要。西安市作为中国历史文化名城&#xff0c;拥有…

spring boot 集成 knife4j

1、knife4j介绍以及环境介绍 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名knife4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!其底层是对Springfox的封装&#xff0c;使用方式也和Springfox一致&#xff0c;只是对接口…

Apache Hadoop YARN框架概述

一、YARN产生和发展简史 1.1背景 数据、程序、运算资源&#xff08;内存、CPU&#xff09;三者组在一起&#xff0c;才能完成数据的计算处理过程。在单机环境下&#xff0c;三者之间协调配合不是太大问题。为了应对海量数据的处理场景&#xff0c;Hadoop软件出现并提供了分布…

妙用编辑器:把EverEdit打造成一个编程学习小环境

1 妙用编辑器&#xff1a;把EverEdit打造成一个编程学习小环境 1.1 应用场景 最近在学习Python语言&#xff0c;由于只是学习和练习&#xff0c;代码规模很小&#xff0c;不想惊动PyCharm、VSCode、WingIDE这些重型武器&#xff0c;只想轻快的敲些代码&#xff0c;记事本虽好&…