Prefix

南昌邀请赛的题,字典树

#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=;
} }

最新文章

  1. 【原】小玩node+express爬虫-1
  2. REDHAT一总复习1 记录systemd日志条目 rsyslogd配置记录日志指令
  3. windows server2012 r2 上IIS8.5
  4. C++控制程序只运行一个实例
  5. hdu2545 树上战争 (并查集)
  6. VC++添加工具栏
  7. Android模拟器报&quot;Failed To Allocate memory 8&quot;错误的解决办法
  8. RANSAC算法详解
  9. win7本地搭建git ssh服务器
  10. GreenDAO数据库版本升级
  11. 【 D3.js 进阶系列 — 2.1 】 力学图的事件 + 顶点的固定
  12. Javascript 闭包与变量
  13. Python:Anaconda安装虚拟环境到指定路径
  14. storybook构建vue组件
  15. python_06 函数、全局变量与局部变量、函数递归
  16. Jmeter监听tomcat
  17. 美团DB数据同步到数据仓库的架构与实践
  18. 深入理解ajax系列第三篇
  19. Python知识(6)--numpy做矩阵运算
  20. FlowPortal-BPM——数据库交互:创建新接口(类库)—将数据提交给其他程序使用

热门文章

  1. sort_values()和sort_index()函数
  2. maven(一) maven到底是什么
  3. JQuery weui 中的Popup (弹出层:底部)
  4. gradle使用方法
  5. Hibernate的批量抓取
  6. “希希敬敬对”队软件工程第九次作业-beta冲刺第一次随笔
  7. JDK8 parallelStream性能测试
  8. javascript详细介绍
  9. vue项目报错,解决Module build failed: Error: Cannot find module &#39;node-sass&#39; 问题
  10. 前端开发HTML&amp;css入门——CSS的文本格式化