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

BZOJ2372 music

思路

两个字符串等价,相当于两个串中排名相同的字符,出现的位置相同。

于是我们哈希,分别维护每种字符的出现位置序列。
现在瓶颈在于得到每种字符的排名。
发现字符集只有 \(25\),可以直接枚举,桶排即可。然后再枚举判断对应排名的字符出现位置是否相同即可。

枚举一遍 \(B\)\(A\) 中可能出现的位置,复杂度 \(O(25n)\)

代码

const int N = 1e5+10,M = 2.5e4+10;
const ull base = 2333;
int n,m,c,a[N],b[M],cnt[26];
ull mul[N],hb[26],ha[26],h1[26][N],h2[26][M],B,A;
inline ull hs(ull h[],int l,int r){return h[r]-h[l-1]*mul[r-l+1];
}
inline int check(){for(int i=1;i<=25;++i) if(ha[i]!=hb[i]) return 0;return 1;
}
vector <int> ans;
int main(){// freopen("in.in","r",stdin); // freopen("out.out","w",stdout);read(n,m,c);if(n<m){puts("0");return 0;}mul[0] = 1;for(int i=1;i<=n;++i) mul[i] = mul[i-1]*base;for(int i=1;i<=n;++i){read(a[i]);for(int j=1;j<=25;++j) h1[j][i] = h1[j][i-1]*base+(a[i]==j)*base;}for(int i=1;i<=m;++i){read(b[i]);++cnt[b[i]];for(int j=1;j<=25;++j) h2[j][i] = h2[j][i-1]*base+(b[i]==j)*base;}for(int i=1,d = 0;i<=25;++i) if(cnt[i]) hb[++d] = h2[i][m];for(int i=1;i<=25;++i) cnt[i] = 0;for(int i=1;i<=m-1;++i) ++cnt[a[i]];for(int l=1,r=m;r<=n;++l,++r){--cnt[a[l-1]];++cnt[a[r]];for(int j=1;j<=25;++j) ha[j] = 0;for(int j=1,d = 0;j<=25;++j) if(cnt[j]) ha[++d] = hs(h1[j],l,r);if(check()) ans.push_back(l);}printf("%d\n",(int)ans.size());for(int i=0;i<(int)ans.size();++i) printf("%d\n",ans[i]);// fclose(stdin);// fclose(stdout);return 0;
}
http://www.rkmt.cn/news/50599.html

相关文章:

  • P11664 [JOI 2025 Final] 缆车 / Mi Telefrico
  • 非线性序列密码结构
  • 2025/11/15
  • LoongOS 上传文件
  • CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤
  • threading.local()的实例化机制
  • 采用git进行项目管理
  • 网络爬虫:简单静/动态网页
  • MySQL MVCC实现原理
  • 算法第三次作业
  • 2025年境外商务出差保险哪里有卖:TOP10平台专业解析
  • 完整教程:PMBT2222A,215 开关晶体管功率二极管 NXP安世半导体 音频放大电路 LED驱动 应用
  • 【前缀和+差分+二分】LeetCode 2528. 最大化城市的最小电量
  • Springboot启动时记录进程ID
  • 详细介绍:【Linux】07.Ubuntu开发环境部署
  • 2025 最新电缆品牌权威推荐:耐火 / 阻燃 / 智能 / 光伏等全品类优质厂商榜单,附国际认证测评
  • 2025 最新电缆制造厂家推荐!电缆品牌权威榜单发布,耐火 / 智能 / 特种电缆优选企业全解析
  • iHaier2.0 智能协同办公模块(Doc-Collab)实现实用的方案详解
  • 2025 最新钢结构源头厂家推荐排行榜,聚焦优质供应与专业服务精选榜单美标 / 欧标钢结构 / 环保设备 / 水泥矿山 / 机械设备钢结构厂家推荐
  • 当下市面上靠谱的平移门服务商
  • 2025年11月中国伸缩门源头厂家口碑推荐榜单
  • 2025年步进式加热直饮水机订制厂家权威推荐榜单:奶茶店全自动烧水器/大型工业净水器/饭店专用开水器源头厂家精选
  • 2025 年 11 月漆渣脱水设备,漆渣脱水机,漆渣脱水装置最新推荐,技术实力与市场口碑深度解析!
  • Convex
  • 【题解】P4707 重返现世
  • 滞留卡常题
  • Cursor ai network issue workaround in Ubuntu 22.04
  • 2025 年漆渣脱水设备厂家最新推荐榜单:优质品牌厂家工艺系统装置全解析,助力企业高效环保处置漆渣脱水系统/漆渣脱水机/漆渣脱水装置厂家推荐
  • [KaibaMath]1024 丑陋的真子集符号⫋的由来
  • 安装Ubuntu