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

哈希乱搞:CF1418G Three Occurrences

这道题看起来并不是那么好做,看到题解神秘做法,记录下来。

考虑枚举右端点,统计符合条件的左端点数量。

发现 3 这个数字很小,发现区间中的数我们仅仅需要知道它 %3 的值。

我们如果可以记录一个位置前缀中所有值的出现情况就好了,但是明显不现实,整个数据是 \(n^2\) 级别的。

就算我们搞一棵主席树,似乎也没有什么可以快速确定左端点的方式。

如果我们可以把一大堆数的出现次数压成一坨,并且这一坨还可差分就好了。

想到了集合哈希。

我们给每一个数一个随机值,每个位置的哈希值就是出现次数 %3 乘上随机值。

不难发现两个位置如果哈希值是相等的,那么区间就是合法的。

但是这个办法有一个问题:没有办法保证恰好出现了 3 次。

我们考虑双指针,每次向右移动右端点,维护左端点,显然左端点只会向右。

就没有了↓

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define ull unsigned long long
using namespace std;
const int MN=1e6+116;
int n, a[MN], cnt[MN], ans=0;
unordered_map <int, ull> trans;
map <ull, int> mp;
ull hashed[MN];
signed main(){mt19937_64 rnd(114514);ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>n; for(int i=1; i<=n; ++i) trans[i]=rnd();for(int i=1; i<=n; ++i){hashed[i]=hashed[i-1]; cin>>a[i];hashed[i]-=cnt[a[i]]*trans[a[i]];++cnt[a[i]]; cnt[a[i]]%=3;hashed[i]+=cnt[a[i]]*trans[a[i]];}mp[0]=1; memset(cnt,0,sizeof(cnt));for(int i=1,j=0; i<=n; ++i){++cnt[a[i]];while(cnt[a[i]]>3){--cnt[a[j]];if(j) --mp[hashed[j-1]];++j;}ans+=mp[hashed[i]];++mp[hashed[i]];}cout<<ans<<'\n';return 0;
}
http://www.rkmt.cn/news/22283.html

相关文章:

  • 悲伤 自卑 乖戾 独自哭泣 陪伴空虚 kill my memory 让我将痛苦全忘记
  • 工程师的 “指尖实验室”!正点原子 LT1 电桥镊子深度测评:同价位竞品谁能打?
  • 破解跨域监控难题:国标GB28181算法算力平台EasyGBS视频调阅技术在跨域安防监控中的核心应用
  • 2025 年电缆桥架源头厂家最新推荐排行榜:聚焦优质供应商核心竞争力,助力工程采购精准选型
  • 2025年交通杯-爆破题wp
  • 挖象浏览器下载安装教程|支持淘宝、拼多多、抖音多平台账号分区管理
  • 2025 年国内活性炭回收交易公司最新推荐排行榜:实力厂商深度解析,助力企业精准选合作方回收果壳活性炭/回收煤质柱状活性炭/库存各种活性炭公司推荐
  • 2025-10-15 CSP-J 模拟赛 赛后总结【ZROI】
  • Oracle故障处理:轻松搞定ORA-01190报错
  • EAS_接口新增单据提示没有组织单据新增权限
  • 全自动红外测油仪厂家推荐/国产红外测油仪品牌推荐/靠谱供应商采购推荐
  • 一对一直播源码搭建:后来者的源码选择与专业研发的关键考量
  • 总氮检测仪靠谱供应商,总氮水质分析仪厂家推荐,总磷/氨氮/COD等仪器哪家好?
  • 多领域对话自动评估技术突破
  • 直面挑战:MySQL 千万级数据高性能优化实战指南
  • 常见的名词
  • CF2155 Codeforces Round 1056 (Div. 2) 游记(VP)
  • 【隐语SecretFlow社区】万字长文解读构建可信数据空间相关标准
  • 编程计算定投黄金的收益率
  • 客户管理软件是什么?深度解析及标杆产品推荐
  • uni-app x开发商城系统,tabBar
  • 组织研磨仪厂家品牌推荐/知名品牌,组织研磨仪哪家好?
  • C# SerialPort send and receive full example
  • 自监督学习在医疗AI中的科技达成路径分析(中)
  • 进口微量粘度计代理商推荐,优质供应商分享
  • Apache Doris 内部数据裁剪与过滤机制的完成原理
  • 阿里面试:Redis挂了怎么办?集群 节点挂,怎么 恢复数据? 多长时间 的数据 可能 丢失?
  • 2025年石墨干燥机厂家推荐榜:真空干燥机/振动流化床干燥机/闪蒸干燥机高效环保成主流,这家企业凭实力登顶
  • 2025年空调系统/锅炉房运维服务厂家最新权威推荐榜:专业托管运维与设备维修外包服务深度解析
  • 混乱的置换 解题报告