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

CF1527C Sequence Pair Weight 题解

题意简析

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

思路解析

首先考虑到枚举,一个长度为 \(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 T, n, ans, a[N];
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);for (cin >> T; T--;) {ans = 0;unordered_map<int, vector<int>> Pos;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 << '\n';}return 0;
}

实现2

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

后记

双倍经验

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

相关文章:

  • 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月塑封机品牌推荐排行榜:五大品牌客观对比与深度评测分析
  • 阴阳师自动挂机神器:解放双手轻松刷御魂
  • 2026年1月塑封机品牌推荐排行榜:五大品牌综合对比与选购深度
  • 人像模糊也能转卡通?unet低质量图片处理能力实测案例
  • Unlock-Music音乐解锁完整指南:3步轻松解决加密音乐播放限制
  • 保姆级教程:手把手教你部署Fun-ASR语音系统
  • Paraformer-large电商客服应用:售后录音自动归档系统搭建
  • YOLOE三种提示模式对比:文本/视觉/无提示哪个强
  • 音乐解锁工具:专业音频格式转换解决方案
  • Docker Desktop启动失败?揭秘WSL 2安装不完整的真实原因与3步修复法
  • Qwen3-Embedding-0.6B内存占用高?量化压缩部署实战优化案例
  • Applera1n:iOS设备激活锁专业解除方案
  • HS2增强补丁:技术优化与游戏体验全面升级方案
  • Docker镜像构建失败率飙升37%?——强制更新失效缓存的4个权威命令+1个生产环境禁用黑名单(附实测perf数据)
  • 小说下载神器完整教程:从零开始掌握批量下载技巧
  • 3分钟解锁B站缓存视频:m4s转MP4的终极解决方案
  • fft npainting lama国际化支持:多语言界面切换功能开发计划