e-Government
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #include <bits/stdc++.h> |
| using namespace std; |
| const int M=1e6+5; |
| using ll =long long; |
| |
| bool vis[M]; |
| |
| int ch[M][26],flag[M],id[M],fail[M],tot; |
| void insert(string s,int ID) { |
| int p=0; |
| for(int i=0;i<s.length();i++) { |
| int v=s[i]-'a'; |
| if(ch[p][v]==0)ch[p][v]=++tot; |
| p=ch[p][v]; |
| } |
| flag[p]=1; |
| id[ID]=p; |
| } |
| |
| void build() { |
| queue<int>q; |
| for(int i=0;i<26;i++) |
| if(ch[0][i])q.push(ch[0][i]); |
| while(!q.empty()) { |
| int now=q.front();q.pop(); |
| for(int i=0;i<26;i++) { |
| if(ch[now][i]) { |
| fail[ch[now][i]]=ch[fail[now]][i]; |
| q.push(ch[now][i]); |
| } |
| else ch[now][i]=ch[fail[now]][i]; |
| } |
| } |
| } |
| |
| int L[M],R[M],cnt; |
| vector<int>g[M]; |
| void dfs(int now,int fa) { |
| L[now]=++cnt; |
| for(auto to:g[now]) |
| if(to!=fa)dfs(to,now); |
| R[now]=cnt; |
| } |
| |
| ll c[M]; |
| int lowbit(int x) { |
| return x&-x; |
| } |
| |
| void add(int i,int v) { |
| while(i<=cnt) { |
| c[i]+=v; |
| i+=lowbit(i); |
| } |
| } |
| |
| ll query(int i) { |
| ll ans=0; |
| while(i) { |
| ans+=c[i]; |
| i-=lowbit(i); |
| } |
| return ans; |
| } |
| |
| ll query(string s) { |
| ll p=0,ans=0; |
| |
| for(int i=0;i<s.length();i++) { |
| int v=s[i]-'a'; |
| p=ch[p][v]; |
| ans+=query(L[p]); |
| } |
| return ans; |
| } |
| |
| void up(int i,int v) { |
| add(L[i],v);add(R[i]+1,-v); |
| } |
| |
| int main() { |
| int n,k;cin>>n>>k; |
| for(int i=1;i<=k;i++) { |
| string s;cin>>s; |
| insert(s,i); |
| vis[i]=1; |
| } |
| build(); |
| for(int i=1;i<=tot;i++)g[fail[i]].push_back(i); |
| dfs(0,0); |
| |
| for(int i=1;i<=tot;i++)if(flag[i])up(i,1); |
| for(int i=1;i<=n;i++) { |
| char op;cin>>op; |
| if(op=='?') { |
| string s;cin>>s; |
| cout<<query(s)<<endl; |
| } |
| else { |
| int x;cin>>x; |
| if(op=='+'&&vis[x]==0)vis[x]=1,up(id[x],1); |
| else if(op=='-'&&vis[x])vis[x]=0,up(id[x],-1); |
| } |
| } |
| return 0; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现