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

【子串分值——贡献法】

题目

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+10;
char s[N];
int l[N], r[N], p[N];
int main()
{
    cin >> s+1;
    int n = strlen(s+1);
    
    for(int i = 1; i <= n; i++)
    {
        int t = s[i] - 'a';
        l[i] = p[t];
        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;
    for(int i = 1; i <= n; i++)
    {
        ans += (ll)(i - l[i]) * (r[i] - i);
    }
    
    cout << ans;
}


http://www.kler.cn/a/390881.html

相关文章:

  • 使用Python实现定期从API获取数据并存储到数据库的完整指南
  • 【Linux】TCP原理
  • 天才的懈怠 : 平衡二叉树
  • Camera Tuning中AE/AWB/AF基础知识介绍
  • 智享AI 无人自动直播的崛起 ,引领智能互动与自动带货新潮流!
  • ffmpeg内存模型
  • 软考:去中心化的部署有什么特点
  • vue2面试题6|[2024-11-11]
  • 25浙江省考-专项刷题(数字推理)-错题本
  • 从0开始学docker (每日更新 24-11-10)
  • Qt 项目架构设计
  • 11/12Linux实验2
  • 【快捷入门笔记】mysql基本操作大全-SQL数据库
  • webpack loader全解析,从入门到精通(10)
  • NVR设备ONVIF接入平台EasyCVR私有化部署视频平台如何安装欧拉OpenEuler 20.3 MySQL
  • 微服务容器化部署实践(FontConfiguration.getVersion)
  • kafka面试题part-3
  • 发包人一直恶意拖延审计,施工人如何破局?
  • 信息安全工程师(82)操作系统安全概述
  • MVVM前端开发模型,怎么快速定位问题
  • 库打包工具 rollup
  • Chromium127编译指南 Linux篇 - 编译前环境搭建(一)
  • 基于深度卷积二元分解网络的齿轮和轴承故障特征提取方法
  • 【LeetCode】【算法】11. 盛最多水的容器
  • C 语言学习-03【输入与输出】
  • 使用 Umami 部署博客分析工具