【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解

news/2024/9/24 2:45:40/

【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解

洛谷传送门

AT传送门

题解

I Hate Sigma Problems!!!

意思很简单就是求序列中每一个子区间内含有不同数字的个数之和。

暴力的话时间复杂度是 O ( n 2 ) O(n ^ 2) O(n2),是肯定不行的,所以要考虑别的方法。
刚开始先手模一些情况,然后发现,不同的值没有贡献的地方为当前出现的位置到上一次出现的位置中间的子序列及其子序列。

接着,就是代码实现。考虑枚举右端点。记 v [ i ] v[i] v[i] i i i 这个数最后一次出现的位置。每次在右端加入一个数,对前面所有左端点的影响:对 1 1 1 v [ i ] v[i] v[i]的位置没有影响,对 v [ i ] + 1 v[i] + 1 v[i]+1 到当前位置有影响。统计答案并更新 v [ i ] v[i] v[i]。时间复杂度 O ( n ) O(n) O(n)

代码

#include <bits/stdc++.h>
#define lowbit(x) x & (-x)
#define endl "\n"
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
namespace fastIO {inline int read() {register int x = 0, f = 1;register char c = getchar();while (c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x * f;}inline void write(int x) {if(x < 0) putchar('-'), x = -x;if(x > 9) write(x / 10);putchar(x % 10 + '0');return;}
}
using namespace fastIO;
ll n, a[200005], v[200005], ans = 0, sum;
int main() {//freopen(".in","r",stdin);//freopen(".out","w",stdout);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;for(int i = 1; i <= n; i ++) {cin >> a[i];	}v[a[1]] = 1;for(int i = 2; i <= n; i ++) {if(v[a[i]]) sum += i - v[a[i]];else {sum += i;}ans += sum;v[a[i]] = i;}ans += n;cout << ans << endl;return 0;
}

http://www.ppmy.cn/news/1529611.html

相关文章

DSP学习00-F28379D学习准备(了解一个工程的构成)

叠甲 我也算初学F28379D&#xff0c;不对之处请大家斧正。不同型号的DSP在外设配置的函数上有一些区别&#xff0c;但是掌握一种对其他型号的来说则难度不大。对于我们而言学习DSP最终还是要用于算法验证&#xff0c;而DSP资源的最大化利用、代码效率提升等则是后话。 软件准…

macOS使用brew安装并配置python环境

1.确认已安装brew环境,如没有安装,参考: macOS系统Homebrew工具安装及使用-CSDN博客 2.安装python python安装成功 3.添加pip路径到/etc/paths 4.查看python与pip默认安装版本

Django 创建好的模块怎么在后台显示

1、配置模型及其需要显示的数据 刚才创建好的tests的增删改查&#xff0c;在后台是不显示的&#xff0c;所以需要进行配置,在刚才创建好的模块里找到admin.py文件&#xff0c;在里面进行如下配置 from django.contrib import adminfrom . import models from .models import …

新能源汽车数据大全(产销数据\充电桩\专利等)

新能源汽车数据大全&#xff08;产销数据\充电桩\专利等&#xff09; 来源&#xff1a;全国各省市统计年鉴、统计公报、国家能源署、中国汽车行业协会&#xff0c;各类汽车统计年鉴、中国电动汽车充电基础设施促进联盟等 1、汽车分品牌产销(95家车企&#xff0c;768个车型&am…

Spring Boot-依赖冲突问题

Spring Boot 依赖冲突问题及其解决方案 1. 引言 在Spring Boot项目中&#xff0c;依赖管理是一个至关重要的环节。Spring Boot通过自动配置和强大的依赖管理简化了应用开发&#xff0c;但随着项目规模扩大和依赖数量的增加&#xff0c;依赖冲突问题常常会浮现。依赖冲突不仅会…

Qwen2.5 本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

SSL 最长签发时间是多久?

在当今数字化的时代&#xff0c;网络安全变得至关重要。为了确保数据在网络传输中的安全性&#xff0c;SSL&#xff08;Secure Sockets Layer&#xff0c;安全套接层&#xff09;证书被广泛应用。那么&#xff0c;SSL最长签发时间是多久呢&#xff1f; SSL证书是一种数字证书&…

MySQL面试题——第一篇

1. 一张自增表里面总共有7条数据&#xff0c;删除了最后2条数据&#xff0c;重启数据库后又插入了一条数据&#xff0c;此时ID是几 表类型如果是MyISAM&#xff0c;那么id就是8 如果是InnoDB&#xff0c;那就是6 InnoDB表只会把自增主键的最大id记录在内存中&#xff0c;所以重…