2024蓝桥杯每日一题(贡献法)

news/2024/5/12 16:14:36

一、第一题:孤独的照片

 解题思路:贡献法+乘法原理
        预处理出眉头牛其左右两边不同的牛的数量,然后考虑怎么算就可以

【Python程序代码】

n = int(input())
s = input()
l,r = [0]*(n+5),[0]*(n+5)
g,h = 0,0
for i in range(n):if s[i]=='G':l[i],h,g=h,0,g+1else:l[i],g,h=g,0,h+1
g,h = 0,0
for i in range(n-1,-1,-1):if s[i]=='G':r[i],h,g=h,0,g+1else:r[i],g,h=g,0,h+1
res = 0
for i in range(n):res += l[i]*r[i] + max(r[i]-1,0) + max(l[i]-1,0)
print(res)

二、第二题:牛的基因学

解题思路:贡献法+组合计数
        仔细读题思考,可以发现结论:答案为出现数量最多的种类数的n次方取模

【Python程序代码】

n = int(input())
s = input()
ct = [0]*4
for i in range(n):if s[i]=='A':ct[0]+=1if s[i]=='C':ct[1]+=1if s[i]=='G':ct[2]+=1if s[i]=='T':ct[3]+=1
ct.sort(reverse=True)
k = 0
while k<3 and ct[k]==ct[k+1]:k+=1
print(pow(k+1,n,1000000007))

三、第三题:子串分值

解题思路: 贡献法
        首先考虑每个字母给答案带来的贡献,预处理出每种字母出现的位置,注意最左边为-1,最右边为n就好。然后考虑怎么算,组合计数方法。

【Python程序代码】

s = input()
pos = [[] for i in range(30)]
for i in range(len(s)):idx = ord(s[i])-ord('a')if len(pos[idx])==0:pos[idx].append(-1)pos[idx].append(i)
for i in range(26):if len(pos[i]):pos[i].append(len(s))
res = 0
for i in range(26):if len(pos[i]):for j in range(1,len(pos[i])-1):res += (pos[i][j]-pos[i][j-1]-1)+(pos[i][j+1]-pos[i][j]-1)+(pos[i][j]-pos[i][j-1]-1)*(pos[i][j+1]-pos[i][j]-1)
res += len(s)
print(res)

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

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

相关文章

基于SpringBoot的联通积分商城数据运营系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 研究背景 3 1.1 项目背景及意义 3 1.2 国内外现状 3 1.3本章小节 4 2 系统分析 5 2.1 需求分析 5 2.2 主要功能模块 5 2.3 数据库设计 6 2.4 本章小节 10 3 关键技术 11 3.1 开发语言 11 3.2 SpringBoot框架 12 3.3 开发模式 14 3.4 本章…

NLP:文本相似度计算

前面我们已经实现了把长段的句子&#xff0c;利用HanLP拆分成足够精炼的分词&#xff0c;后面我们要实现“联想”功能&#xff0c;我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算 &#xff08;当然HanLP也有文本相似度计算的方法&#xff0c;这里我…

微信小程序-分包

分包 1.什么是分包 分包指的是把一个完整的小程序项目&#xff0c;按照需求划分为不同的子包&#xff0c;在构建时打包成不同的分包&#xff0c;用户在使用时按需进行加载。 2.分包的好处 对小程序进行分包的好处主要有以下两点&#xff1a; 可以优化小程序首次启动的下载时间…

[云原生] k8s之存储卷

一、emptyDir存储卷 当Pod被分配给节点时&#xff0c;首先创建emptyDir卷&#xff0c;并且只要该Pod在该节点上运行&#xff0c;该卷就会存在。正如卷的名字所述&#xff0c;它最初是空的。Pod 中的容器可以读取和写入emptyDir卷中的相同文件&#xff0c;尽管该卷可以挂载到每…

Gitflow:一种依据 Git 构建的分支管理工作流程模式

文章目录 前言Gitflow 背景Gitflow 中的分支模型Gitflow 的版本号管理简单模拟 Gitflow 工作流 前言 Gitflow 工作流是一种版本控制流程&#xff0c;主要适用于较大规模的团队。这个流程在团队中进行合作时可以避免冲突&#xff0c;并能快速地完成项目&#xff0c;因此在很多软…

Vue.js+SpringBoot开发海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…