蓝桥杯练习题——贡献法(隔板法)

1.孤独的照片

在这里插入图片描述
在这里插入图片描述

思路

孤独的区间一定有一头孤独的牛,考虑每头牛对区间的贡献是多少
在这里插入图片描述

#include<iostream>
using namespace std;
const int N = 5e5 + 10;
int n;
string s;int main(){cin>>n>>s;long long res = 0;for(int i = 0; i < n; i++){int l = i - 1, r = i + 1;// 向左扩展while(l >= 0 && s[l] != s[i]) l--;// 向右扩展while(r < n && s[r] != s[i]) r++;// 更新左右部分int L = i - l - 1, R = r - i - 1;res += 1ll * L * R;if(L >= 1) res += L - 1;if(R >= 1) res += R - 1;}cout<<res;return 0;
}

2.子串分值

在这里插入图片描述
在这里插入图片描述

思路

考虑每一个字符对答案的贡献
在这里插入图片描述

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e5 + 10;
int w[26], l[N], r[N];
char s[N];int main(){// 下标从 1 开始cin>>(s + 1);int n = strlen(s + 1);// 统计左边的边界for(int i = 0; i < 26; i++) w[i] = 0;for(int i = 1; i <= n; i++){int t = s[i] - 'a';l[i] = w[t];w[t] = i;}// 统计右边的边界for(int i = 0; i < 26; i++) w[i] = n + 1;for(int i = n; i >= 1; i--){int t = s[i] - 'a';r[i] = w[t];w[t] = i;}long long res = 0;for(int i = 1; i <= n; i++) res += 1ll * (i - l[i]) * (r[i] - i);cout<<res;return 0;
}

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

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

相关文章

找工作别再上招聘软件啦

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 正文 找工作可千万别上招聘软件&#xff0c;很多同学私信反映找工作真的太难了&#xff0c;不是被平台骗&#xff0c;就是被公司坑&#xff0c;那你不如看看这五个平台。帮你远离上当…

掌握AI写作工具:引领内容创作潮流

随着技术发展&#xff0c;AI技术正日益渗透到各行各业&#xff0c;并对内容创作领域产生了深远影响。随着AI写作工具的不断发展和普及&#xff0c;内容创作者们正逐渐看到了AI在提高效率、创造力和质量方面的巨大潜力。本文将探讨AI写作工具如何引领内容创作潮流&#xff0c;以…

几个精品声音模型

AI技术提取某位歌手的音色&#xff0c;再用其替换另一位歌手音色的方式&#xff0c;可以实现接近歌手本人翻唱的逼真效果。无需学习其他伪音技巧&#xff0c;即可实现实时男女声音互换等等。 使用 RVC 及模型工具&#xff0c;可以实现以下几个功能&#xff1a; 音乐干声分离&…

改变input placeholder的样式 (适用于vue uniapp 中的input textarea)

如下控制 <textarea name"" placeholder"请输入您要反馈的问题&#xff0c;以便我们为您解决" placeholder-style"font-weight: 500;font-size: 27rpx;color: #999999;" id"" cols"30" rows"10"></text…

一、从0开始卷出一个新项目之CC-Link IE TSN 概述

目录 1.1 范围 1.2 目的 1.3 CC-Link介绍 1.3.1 CPLA协会 1.3.2 CC-Link协议家族 1.3.3 CC-Link IE TSN 二、瑞萨RIN32M4-CL3 2.1 芯片简介 2.2 资料下载 2.3 RIN系列产品 一、从0开始卷出一个新项目之CC-Link IE TSN 概述 一、CC-Link介绍 1.1 范围 快速实现CC-Lin…

深入了解JVM底层原理

一、JVM内存结构 1、方法区&#xff1a;存储编译后的类、常量等&#xff08;.class字节码文件&#xff09; 2、堆内存&#xff1a;存储对象 3、程序计数器&#xff1a;存储当前执行的指令地址&#xff08;计算机处理器&#xff08;CPU&#xff09;正在执行的下一条指令在内存…

HarmonyOS NEXT应用开发之SideBarContainer侧边栏淡入淡出动效实现案例

介绍 在2in1或平板上&#xff0c;群聊侧边栏是一种较为常用的功能&#xff0c;虽然HarmonyOS已经具备了基本的动效&#xff0c;但是部分情况下开发者可能有定制侧边栏动效的需求&#xff0c;本例主要介绍了如何基于显式动画实现侧边栏的淡入淡出动效。 效果图预览 使用说明&a…

Linux-多线程2 ——线程等待、线程异常、线程退出、线程取消和线程分离

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、线程间的全局变量共享__thread 修饰全局变量 二、线程等待pthread_self和tid 三、线程异常四、线程退出五、线程取消六、线程分离 一、线程间的全局变量共享 上…

第四百一十回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容&#xff0c;本章回中将介绍如何获取时间戳.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

Pytorch基础-汇总

本教程翻译自微软教程&#xff1a;https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑&#xff1a;2024/3/1&#xff1b;最后编辑&#xff1a;2024/3/4 本教程包含以下内容&#xff1a; 介绍pytorch基础和张量操作介绍数据集介绍归一化介绍构…

Navicat16安装时报错记录

1.安装过程中一定要断网 2.安装好后&#xff0c;先不要直接打开客户端&#xff0c;应该先打开激活破解软件&#xff0c;如下&#xff1a; 选择HOSTS--》再Patch-->是&#xff0c;然后生成注册码&#xff0c;打开客户端正常执行即可

二蛋赠书十八期:《一本书讲透Elasticsearch:原理、进阶与工程实践》

Elasticsearch 是一种强大的搜索和分析引擎&#xff0c;被广泛用于各种应用中&#xff0c;以其强大的全文搜索能力而著称。 不过&#xff0c;在日常管理 Elasticsearch 时&#xff0c;我们经常需要对索引进行保护&#xff0c;以防止数据被意外修改或删除&#xff0c;特别是在进…