当前位置: 首页 > news >正文

AcWing 2868. 子串分值

文章目录

  • 前言
  • 代码
  • 思路

前言

还是实力不允许啊,要是实力允许我就一道一道中等题刷了。简单题真够呛。有些题看题解都是看老半天看不懂,假设是这种我是真感觉没必要钻研。我现在大三,要是看一遍题解看不懂就算了,果断放弃。真可以这么果断吗,不管是做题还是生活,真可以这么果断吗。看到省赛的数据还有部分的分数的,反正就是写个暴力放在那里就好了,准备明年的蓝桥杯和 9 月的 csp ,26 年 3 月的 csp 看时间,要是可以的话也参加一下。就当机试模拟考试了。查了一下,是三月底,那时候机试都结束了,那算了。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int l[N],r[N],p[30];
char s[N];
typedef long long LL;
int main(){scanf("%s",s+1);//从下标为 1 的位置开始存int n=strlen(s+1);for(int i=1;i<=n;i++){int t=s[i]-'a';//p 的下标表示的是这个是啥字母l[i]=p[t];//最开始的时候因为是全局数组,所以是 0 ,这里是特判了一下边界情况p[t]=i;//相当于每次就是该元素左边的元素}//表示当前的元素的位置,循环这块有点巧妙for(int i=0;i<26;i++){//这里映射的是每一个字母的位置p[i]=n+1;//右边界}for(int i=n;i>=1;i--){int t=s[i]-'a';r[i]=p[t];p[t]=i;}LL ans=0;ans+=(LL)(i-l[i])*(r[i]-i);//贡献法for(int i=1;i<=n;i++){}cout<<ans<<endl;return 0;
}

思路

看了一下,五个零,是十万。我知道的算法就是排序,二分,O(nlogn) 这个时间复杂度。这个题是啥意思啊。从一个字符串里面截取一段字符串,计算这段字符串的 f 函数的数值,对于所有的函数值求和,输出这个和。这么复杂。看题解,理解了一部分,不想放弃。又看了一遍,大概懂了。这种就挺难受的。因为这种大概懂,把代码删掉自己很难独立写出来。每行写了注释之后感觉也还好,就是循环那块有点难。多写几遍就好了。贡献法的关键就是要找到某一个字母相邻的两个相同的字母,假设没有就找边界,因为从下标为 1 开始存的,所以边界就是 0 和 n+1 .

http://www.lryc.cn/news/499077.html

相关文章:

  • 如何进行 JavaScript 性能优化?
  • 使用TCP编程实现简单登录功能
  • 卷积神经网络(CNN)的层次结构
  • 操作系统文件管理相关习题2
  • react 通过ref调用子组件的方法
  • 【计算机网络】 —— 数据链路层(壹)
  • AcWing 93. 递归实现组合型枚举
  • vscode 折叠范围快捷键
  • RabbitMQ 实现分组消费满足服务器集群部署
  • Chromium网络调试篇-Fiddler 5.21.0 使用指南:捕获浏览器HTTP(S)流量(二)
  • 个人IP建设:简易指南
  • 智能指针【C++11】
  • 【Linux 篇】Docker 启动和停止的精准掌舵:操控指南
  • Cursor vs VSCode:主要区别与优势分析
  • 从单体到微服务:如何借助 Spring Cloud 实现架构转型
  • RocketMq基础学习+SpringBoot集成
  • 分布式cap
  • mybatis-xml映射文件及mybatis动态sql
  • 计算机网络复习——概念强化作业
  • 用友BIP与旺店通数据集成方案解析
  • string类函数的手动实现
  • Oceanbase离线集群部署
  • transformers生成式对话机器人
  • WPF中的VisualState(视觉状态)
  • C#设计模式--状态模式(State Pattern)
  • 〔 MySQL 〕索引
  • 计算机网络研究实训室建设方案
  • 韩企研学团造访图为科技:共探人工智能创新前沿
  • html button 按钮单选且 高亮
  • 图片上传HTML