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

cf 2121F. Yamakasi 解题

题目

给定数组 \(a\) 和整数 \(s, x\),求有多少子数组满足:

  1. 子数组和 = \(s\)
  2. 子数组最大值 = \(x\)

思路

  • 最大值 = \(x\) ⇒ 子数组必须包含至少一个 \(x\),且不能包含 \(> x\) 的数。
  • \(> x\) 的元素分割数组,在每个连续段(所有元素 ≤ x)内处理。
  • 遍历时维护左指针 \(l\) 和哈希表 \(mp\)(存储可能成为左端点的前缀和)。
  • 遇到 \(a[i] == x\) 时,将 \([l, i-1]\) 的前缀和加入 \(mp\),更新 \(l = i\)
  • 每次查询 \(mp[sum[i] - s]\) 累加到答案。

代码

#include <bits/stdc++.h>
using ll = long long;
using namespace std;
const int N = 1e7 + 5;
ll n, s, x;
void solve() {cin >> n >> s >> x;vector<ll> a(n + 1), sum(n + 1, 0);map<ll, ll> mp;for (int i = 1; i <= n; i++)cin >> a[i], sum[i] = sum[i - 1] + a[i];ll l = 0, ans = 0;for (int i = 1; i <= n; i++) {if (a[i] > x) {//更新mpmp.clear();l = i;} else {//a[i]<=xif (a[i] == x) {//符合条件就添加while (l < i) {mp[sum[l]]++;l++;}}ans += mp[sum[i] - s];//a[i]<=x 前面有x了就加进去}}cout << ans << '\n';
}
int main() {int t = 1;cin >> t;while (t--) {solve();}return 0;
}
http://www.jsqmd.com/news/421973/

相关文章:

  • XXE外部实体注入攻击
  • Gradle 与移动开发的完美融合之道
  • 网站配置谷歌邮箱 (Gmail) 自动发件完整教程(2026 最新版)
  • 命令注入攻击与防御
  • 交易所 K 线模块启动与故障修复全攻略
  • 法律研究数据挖掘效率低?AI应用架构师的3个大招帮你提升
  • 万字详解 Vue 项目从源码到上线:前端部署全流程指南
  • 从零部署 AI 矿机核心源码:全流程实操指南(附环境适配 + 避坑手册)
  • 抗体体外亲和力成熟技术:三大突变策略与技术原理
  • 靠谱的2026板材工厂推荐榜 - 品牌推荐(官方)
  • Windows Terminal 和 WSL:提升用户体验的终极指南
  • 行业内有实力的2025板材厂家 - 品牌推荐(官方)
  • 揭秘盒马鲜生礼品卡回收猫腻 - 京顺回收
  • 从零实现 Flutter 插件鸿蒙适配:volume_controller 实战指南
  • YOLO26改进45:全网首发--添加C3k2_SHSA:避免了多头冗余,并通过并行融合全局与局部信息提升准确率
  • 动物模型
  • 开发日志12
  • RAG工作机制详解:高质量知识库构建从入门到精通(非常详细),收藏这一篇就够了!
  • 多模态文档智能:视觉文档检索的现状综述与未来愿景
  • 某易九批x-sign逆向wasm分析
  • 智能体平台“三驾马车”:RAG、Workflow与Agent从入门到精通,收藏这一篇就够了!
  • 数学中的长度单位认识与应用:厘米与米
  • YOLO26改进44:全网首发--添加C3k2_MogaBlock:以更优的复杂度-性能平衡实现信息丰富的上下文挖掘
  • 2026年2月自动化厂家实战报告:主流服务商技术集成度及项目交付效能对比
  • 区间的线段并珂朵莉树
  • 2026年自动化厂家推荐榜单:覆盖高端制造与新兴能源,90%客户复购率的十强权威认证
  • 白酒度数竟不是按口感定的?原来我们都被忽悠了
  • 2026年2月PLC厂家实战报告:主流品牌产品性能及行业适配度对比
  • Dify搭建ChatFlow制作知识库
  • 2025板材工厂哪个好 - 品牌推荐(官方)