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

随笔 4

2017 年欧洲信息学奥林匹克竞赛 Day1 Problem A

很好的题目。

题意简述

给一个长度为 \(n\) 的字符串,字符集为 \(\Sigma\),求这个字符串含有 \(|\Sigma|\) 个不同字母的子串的数量。


好久没见到这样的好题了。

我们发现正解对我这样的蒟蒻有些困难,于是考虑随机化+哈希。

以下令 \(t=|\Sigma|\)

我们对字符集内 \(t\) 种字符赋上 \(t\) 种值,使得 \(t\) 个数的和为 \(0\),否则和不为 \(0\)

然后瞬间难度降级,我们需要统计有多少个区间映射的值的和为 \(0\)

这很套路,我们做一个前缀和,把枚举到某个位置得到的和记到桶 \(p\) 里面,最后答案为:

\[\sum \frac{p_i\times(p_i-1)}{2} \]

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e9+7;
bool cnt[300];
int tot;
char c[100];
int t[300];
map<int,int> p;
signed main(){int n;cin>>n;string s;cin>>s;for(int i=0;i<n;i++) {if(!cnt[s[i]]) {cnt[s[i]]=1;c[++tot]=s[i];}} //为字母映射一个值 srand(time(0));srand(rand());int sum=0;for(int i=1;i<=tot/2;i++) {int x=rand()*rand()*rand();t[c[i]]=-x;sum+=t[c[i]];}for(int i=tot/2+1;i<=tot-1;i++) {int y=rand()*rand()*rand();t[c[i]]=y;sum+=t[c[i]];}t[c[tot]]=(0-sum);
//	for(int i=1;i<=tot;i++) {
//		cout<<c[i]<<" ";
//		cout<<t[c[i]]<<"\n";
//	}p[0]=1;sum=0;for(int i=0;i<n;i++) {sum+=t[s[i]];p[sum]++;}int ans=0;for(auto i:p) {int tmp=1ll*i.second*(i.second-1ll)/2ll%mod;ans=(ans+tmp)%mod;}cout<<ans;return 0;
}
http://www.jsqmd.com/news/397258/

相关文章:

  • 2026如何通过AI营销获客?国内特色GEO服务商盘点 - 品牌2025
  • 元学习应用方案实战:AI架构师如何构建自适应系统
  • 抢占AI时代流量入口,特色的GEO服务商概览 - 品牌2025
  • 氮和氧的氟化物 NF3,OF2,FNO3,FClO4 学习笔记
  • 46-mini-vue 实现编译 template 为 render 函数
  • AcWing算法基础课(配套习题)
  • GPT赋能AI原生应用领域的数字化转型
  • 一个人的价值
  • AI原生应用开发指南:工作记忆模块设计与优化
  • 聪明人与社会价值
  • 企业级AI原生应用开发:幻觉缓解架构设计指南
  • 64 搜索平移递增数组中的元素
  • 大专工业大数据应用专业学习数据分析的价值分析
  • 互联网大厂Java面试场景与技术点详解:从Spring到微服务
  • 大厂AI架构师的监控预警心得:这6点让你少走一年弯路
  • 个人博客网站搭建day2-Spring Boot 3 + JWT + Redis 实现后台权限拦截与单点登录(漫画解析)
  • DataFrame数据合并与连接:Pandas中整合数据的全面指南
  • 国内特色GEO服务商能力全景解析(2026年2月) - 品牌2025
  • DataFrame数据聚合与分组:从基础到进阶的Python数据分析指南
  • 题解:洛谷 P3380 【模板】树套树
  • 深入RAG架构:分块策略、混合检索与重排序的工程实现
  • 抢占AI搜索新入口:主流GEO服务商全景解析(2026年版) - 品牌2025
  • 大年初四
  • 引入Lombok时,记得删除<Configuration>
  • VC运行库报错截图收集
  • [豪の算法奇妙冒险] 代码随想录算法训练营第四十二天 | 188-买卖股票的最佳时机Ⅳ、309-最佳买卖股票时机含冷冻期、714-买卖股票的最佳时机含手续费
  • 题解:洛谷 P3834 【模板】可持久化线段树 2
  • oii一键生成动漫,oiioii一键生成动漫,oii邀请码,oiioii邀请码2026年2月20日最新
  • 算力杠杆和人类瓶颈:一个 PhD 的Agentic Workflow 压力测试半月记(二)
  • 《金包银》MV制作教程:DeepSeek+百度AI+剪映,闽南语苦情歌的深度演绎