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

B4453 [海淀区普及组 2025 T1] 序列相似对 题解

题意简析

计算给定序列的所有字段权值和,权值定义为有相同数值的下标对数。

思路解析

首先考虑到枚举,一个长度为 \(n\) 的序列,总共可以产生 \(n^2\) 数量级的子序列,子序列的最长长度为 \(n\),时间复杂度为 \(O(n^3)\)


但我们想到,这其中的枚举肯定会有很多重复,所以考虑优化。

这里有一种 \(O(n)\) 的做法,对于每个下标对 \((i,j)\),包含它的子段数量是 \(i(n-j+1)\)。为什么呢?因为它的左端点是 \([1,i]\),右端点是 \([j,n]\),左端点有 \(i\) 种可能,右端点有 \(n-j+1\) 种可能,根据我们小学二年级就学过的乘法原理,那么这个子段对答案的贡献就是 \(i(n-j+1)\) 个它所拥有的相同数值下标对数。

对于每个数值的出现的下标的序列,我们令其为 \(p\),大小为 \(m\),那么我们的答案就是:

\[\sum_{i=1}^{m-1} \sum_{j=i+1}^{m} p_i(n-p_j+1) \]

这个东西弄不好还是 \(O(n^2)\) 的,所以我们可以提取公因式,转化为:

\[ \sum_{i=1}^{m-1} [p_i \sum_{j=i+1}^{m}(n-p_j+1)]\]

预处理后缀和处理即可。

代码实现

这里带 \(\log\) 的原因是用了 unordered_map,如果实现的好的话是可以去的。

实现1:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 5;
int n, ans, a[N];
unordered_map<int, vector<int> > Pos;
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];Pos[a[i]].push_back(i);}for (auto& [v, pos] : Pos) {int m = pos.size();if (m >= 2) {vector<int> suf(m, 0);suf[m - 1] = n - pos[m - 1] + 1;for (int i = m - 2; i >= 0; i--) {suf[i] = suf[i + 1] + (n - pos[i] + 1);}for (int i = 0; i < m - 1; i++) {ans += pos[i] * suf[i + 1];}}}cout << ans;return 0;
}

实现2

#include <bits/stdc++.h>
#define int long long
using namespace std;
unordered_map<int, int> suf;
int n, ans;
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin >> n;for (int i = 1, x; i <= n; i++) {cin >> x;ans += suf[x] * (n - i + 1);suf[x] += i;}cout << ans;return 0;
}

后记

双倍经验

http://www.jsqmd.com/news/277707/

相关文章:

  • 银源电力联系方式:加盟咨询与业务合作指南
  • YOLOv9评估功能详解,mAP指标计算全过程
  • 2026年无缝钢管推荐:工业生产与能源项目评测,直击质量与交付核心痛点
  • 2026年GEO优化公司推荐:聚焦工业与专业服务领域评价,应对AI生态权威构建挑战
  • 知名的搅拌站专用燃烧器沥青设备厂家2026年推荐几家?
  • 3分钟解锁B站缓存视频:m4s转MP4的智能解决方案
  • Docker build --no-cache只是表象,真正致命的是层哈希重计算!——从AUFS到overlay2内核级缓存机制深度解密(2024最新内核补丁验证)
  • TurboDiffusion新手必看:文生视频提示词编写规范与示例
  • Windows系统日志监控终极解决方案:Visual Syslog Server完全实战指南
  • 2026年无缝钢管推荐:基于工业场景深度评测,解决供应链稳定与质量痛点排名
  • Centos及Redhat学习笔记
  • 2026年1月塑封机品牌推荐排行榜:五大品牌综合对比与选购深度分析
  • Emotion2Vec+ Large降本部署案例:低成本GPU方案节省40%算力
  • B站字幕智能提取:5分钟掌握视频文字内容高效获取完整指南
  • CF1527C Sequence Pair Weight 题解
  • 2026年无缝钢管推荐:多行业应用实测评价,针对质量与交付痛点精准指南
  • 2026年geo公司推荐:基于行业应用实测评价,针对品牌可见性痛点精准指南
  • 无缝钢管供应商哪家强?2026年无缝钢管推荐与排名,解决定制化与时效性痛点
  • 如何为工程项目选无缝钢管?2026年无缝钢管全面评测与推荐,直击标准与适配痛点
  • 通过原生集成的 AI 智能体(AI Agents),Oracle Cloud ERP 实现了流程自动化、预测性洞察生成和主动式风险控制
  • 2026年知名的钢板预处理线工厂怎么选?推荐几家
  • 2026年无缝钢管推荐:长期合作稳定性排名,涵盖定制与标准品供应场景
  • 5分钟部署FSMN-VAD离线语音检测,轻松实现长音频自动切分
  • 【Docker部署MySQL终极指南】:从零开始掌握数据卷挂载核心技术
  • GEO优化哪家强?2026年GEO公司排名与推荐,解决技术适配与数据安全痛点
  • 2026年1月塑封机品牌推荐排行榜单:五大品牌综合对比与选购深度评测
  • 千亿token时代的信息处理新范式
  • 写一个最便捷的 WebRTC Demo(实操篇)
  • 2026年1月塑封机品牌推荐排行榜:五大品牌客观对比与深度评测分析
  • 阴阳师自动挂机神器:解放双手轻松刷御魂