Prefix
2024-10-07 10:41:03
南昌邀请赛的题,字典树
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll A[];
string s[];
ll trie[][];
ll v[];
ll tot=;
ll cnt[];
ll B[];
ll n,mod;
void insert(string s,int x)
{
int p=;
int len=s.length();
ll t=;
for(int i=;i<len;i++){
t=(t*A[s[i]-'a'])%mod;
if(trie[p][s[i]-'a']==){
trie[p][s[i]-'a']=++tot;
}
p=trie[p][s[i]-'a'];
cnt[p]++;
v[p]=t;
}
B[x]=t;
}
ll ans=;
void search(string s,int x)
{
int p=;
int len=s.length();
for(int i=;i<len;i++){
p=trie[p][s[i]-'a'];
if(v[p]>B[x]){
ans+=cnt[p];
}
}
}
int main()
{ scanf("%lld%lld",&n,&mod);
for(int i=;i<;i++){
scanf("%lld",&A[i]);
}
for(int i=;i<n;i++){
cin>>s[i];
insert(s[i],i);
}
for(int i=;i<n;i++){
search(s[i],i);
cout<<ans<<' ';
ans=;
} }
最新文章
- 【原】小玩node+express爬虫-1
- REDHAT一总复习1 记录systemd日志条目 rsyslogd配置记录日志指令
- windows server2012 r2 上IIS8.5
- C++控制程序只运行一个实例
- hdu2545 树上战争 (并查集)
- VC++添加工具栏
- Android模拟器报";Failed To Allocate memory 8";错误的解决办法
- RANSAC算法详解
- win7本地搭建git ssh服务器
- GreenDAO数据库版本升级
- 【 D3.js 进阶系列 — 2.1 】 力学图的事件 + 顶点的固定
- Javascript 闭包与变量
- Python:Anaconda安装虚拟环境到指定路径
- storybook构建vue组件
- python_06 函数、全局变量与局部变量、函数递归
- Jmeter监听tomcat
- 美团DB数据同步到数据仓库的架构与实践
- 深入理解ajax系列第三篇
- Python知识(6)--numpy做矩阵运算
- FlowPortal-BPM——数据库交互:创建新接口(类库)—将数据提交给其他程序使用
热门文章
- sort_values()和sort_index()函数
- maven(一) maven到底是什么
- JQuery weui 中的Popup (弹出层:底部)
- gradle使用方法
- Hibernate的批量抓取
- “希希敬敬对”队软件工程第九次作业-beta冲刺第一次随笔
- JDK8 parallelStream性能测试
- javascript详细介绍
- vue项目报错,解决Module build failed: Error: Cannot find module &#39;node-sass&#39; 问题
- 前端开发HTML&;css入门——CSS的文本格式化