很好的字符串题啊

建立Trie树

纠缠的时候用并查集并起来

然后查询的时候用并查集所代表的节点查询

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=2e5+100;
char S[N];
char B[N];
struct Node{int vis[10];int fa,end;int getfa();
}T[N*51];
int cnt=0;
int root=0;
int NewNode(){++cnt;T[cnt].fa=cnt;return cnt;
}
int Node::getfa(){if(&T[fa]==this)return fa;return fa=T[fa].getfa();}
void Insert(char *S){int now=root;int len=strlen(S);for(int i=0;i<len;++i){if(!T[now].vis[S[i]-'0']){T[now].vis[S[i]-'0']=NewNode();}now=T[T[now].vis[S[i]-'0']].getfa();}T[now].end=1;
}
int Query(char *S){int now=root;int len=strlen(S);for(int i=0;i<len;++i){if(!T[now].vis[S[i]-'0'])return 0;now=T[T[now].vis[S[i]-'0']].getfa();}return T[now].end;
}
int Aceess(char *S){int now=root;int len=strlen(S);for(int i=0;i<len;++i){if(!T[now].vis[S[i]-'0']){T[now].vis[S[i]-'0']=NewNode();}now=T[T[now].vis[S[i]-'0']].getfa();}return now;
}
void Merge(int x,int y){if(x==y)return;T[x].fa=y;T[y].end|=T[x].end;for(int i=0;i<10;++i){int sonx=T[T[x].vis[i]].getfa();int sony=T[T[y].vis[i]].getfa();if(sonx){if(!sony){T[y].vis[i]=sonx;}else{Merge(sonx,sony);y=T[y].getfa();}}}
}
int main(){
//  freopen("quantum.in","r",stdin);
//  freopen("quantum.out","w",stdout);int T;scanf("%d",&T);while(T--){int opt;scanf("%d",&opt);if(opt==1){scanf("%s",S);Insert(S);          }if(opt==2){scanf("%s",S);cout<<Query(S)<<'\n';}if(opt==3){scanf("%s%s",S,B);Merge(Aceess(S),Aceess(B));}}return 0;
}

转载于:https://www.cnblogs.com/Leo-JAM/p/10079123.html

和Leo一起做爱字符串的好孩子量子纠缠相关推荐

  1. 和Leo一起做爱字符串的好孩子之 [SDOI2014]数数

    题目描述 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3223不是幸运 ...

  2. 和Leo一起做爱数学的好孩子之[SHOI2014]概率充电器

    著名的电子产品品牌SHOI 刚刚发布了引领世界潮流的下一代电子产品-- 概率充电器: "采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决 定!SHOI 概率充电器,您生活不可或 ...

  3. 和Leo一起做爱线段树的好孩子HDU5238 Calculator

    额 神仙题 感觉就是一个暴力啊 线段树维护的是一个类似于键值线段树的东西? 每个叶子节点才表示一个操作 而在PushUp的时候合并答案 这个咋合并? 暴力合并.我们记录下当前模意义下所有的答案 然后暴 ...

  4. 和Leo一起做爱线段树的好孩子之火车运输

    ByteLand火车站(编号0)每天都要发往全国各地N列客运火车,编号1 N.第i列火车的目的地是编号Si的火车站. 对任意车站X,都与X+1车站有铁轨直接相连,因此火车站可以看成数轴上的整数点,第i ...

  5. 做爱做的事,做有快感的事

    还是不发首页了,最近没规划,需要缓一缓.因为发首页还是要符合几点要求的,所以就先停停,不过文章还是得写. 本来十一点多就写好了,没想到洗个澡就过了十二点. ---------------------- ...

  6. C语言试题四十之使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

    1. 题目 请编写一个函数function,它的功能是:假定输入的字符串中只包含字母和*号.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个:若多于n个,则删除多于的*号:若少于或等于n ...

  7. C语言试题六之使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。

    1. 题目 请编写函数function,它的功能是:字符串的前导*号不得多于n个:若多于n个,则删除多于的*号:若少于或等于n个,则什么也不做.字符串中间和尾部的*号不删除. 2 .温馨提示 C语言试 ...

  8. 【高德地图API】汇润做爱地图技术大揭秘

    原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...

  9. 【豆瓣达人总结】做爱做的事,看有趣的人

    惊雀 http://www.douban.com/people/4917689/ 有想法很特别的一位大哥,从另一个角度告诉你什么叫做"人不可貌相",有位友邻说得好:之所以觉得惊先生 ...

最新文章

  1. Sybase IQ导出文件的几种方式
  2. 如何在 Linux 上使用 kill 和 killall 来管理进程
  3. 【HAOI2014】走出金字塔
  4. java文件上传下载服务并发超时,先收藏了
  5. 顺序表的基本操作实验报告_INDIRECT函数从入门到进阶之相同顺序跨表引用
  6. 哪些人员可以申请外国人永久居留证?
  7. (七)boost库之单例类
  8. 罗盘时钟代码(转载)
  9. linux的cpu信息怎么理解,理解Linux下的CPU信息:lscpu cpuinfo
  10. s2 安恒 漏洞验证工具_Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)
  11. Tomcat Get请求的巨坑
  12. rg1 蓝光危害rg0_蓝光危害IEC 62778 测试什么
  13. RNN调试错误:lstm_cell = tf.contrib.rnn.core_rnn_cell.BasicLSTMCell(lstm_size) 方法已失效
  14. 表数据库名_关系数据库理论:数据库的六大范式知识笔记
  15. MIT软件构造 -- ADT Patterns: Interfaces, Generics, and Enums
  16. Java Script 学习笔记 -- Ajax
  17. 20210427:力扣第238周周赛(下)
  18. 解决DatePicker中Appbar icon缺失
  19. 【数据结构笔记41】散列表/哈希表的性能分享
  20. 苹果被拒的血泪史。。。(update 2015.11)

热门文章

  1. 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
  2. opencv-从设备获取视频并且一帧一帧的保存下来
  3. 标记寄存器---汇编学习笔记
  4. windows 包管理器scoop的使用
  5. 手写简版spring --10--容器事件和事件监听器
  6. 日常生活小技巧 -- Source Insight 教程
  7. 【译】Federated Learning: Bringing Machine Learning to the edge with Kotlin and Android
  8. 【分布式共识二】拜占庭将军问题----口头协议
  9. 连接不同区块链的跨链技术介绍
  10. 【区块链基础知识系列】 第9课 一文诠释什么是DAG