字符串练习1 于是他错误的点名开始了(Trie)
题目链接在这里:P2580 于是他错误的点名开始了 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
是一道trie树的板子题,注意理解trie树的每一个节点代表的是一个状态,这个状态是一个前缀。
1 #include "bits/stdc++.h"
2 using namespace std;
3 const int MAX=5e5+5;
4 int n,m;
5 struct Str{
6 int str[MAX][30],tot;
7 int cnt[MAX];
8 bool vis[MAX];
9 Str(){
10 tot=0;
11 memset(vis,false,sizeof(vis));
12 memset(str,0,sizeof(str));
13 memset(cnt,0,sizeof(cnt));
14 }
15 void insert(char *s){
16 int i,j,p=0;
17 int ls=strlen(s+1);
18 for (i=1;i<=ls;i++){
19 if (str[p][s[i]-'a']==0){
20 str[p][s[i]-'a']=++tot;
21 p=tot;
22 }
23 else p=str[p][s[i]-'a'];
24 }
25 vis[p]=true;
26 }
27 int check(char *s){
28 int i,j,ls,p=0;
29 ls=strlen(s+1);
30 for (i=1;i<=ls;i++){
31 if (str[p][s[i]-'a']==0) return 0;
32 p=str[p][s[i]-'a'];
33 }
34 if (!vis[p]) return 0;
35 if (cnt[p]==0){
36 cnt[p]++;
37 return 1;
38 }
39 else return 2;
40 }
41 }ss;
42 int main(){
43 int i,j;char s[MAX];
44 scanf("%d",&n);
45 for (i=1;i<=n;i++){
46 scanf("\n%s",s+1);
47 ss.insert(s);
48 }
49 scanf("%d",&m);
50 for (i=1;i<=m;i++){
51 scanf("\n%s",s+1);
52 j=ss.check(s);
53 if (j==0) printf("WRONG\n");
54 if (j==1) printf("OK\n");
55 if (j==2) printf("REPEAT\n");
56 }
57 return 0;
58 }
字符串练习1 于是他错误的点名开始了(Trie)的更多相关文章
- 于是他错误的点名开始了 [Trie]
于是他错误的点名开始了 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已 ...
- P2580 于是他错误的点名开始了(trie)
P2580 于是他错误的点名开始了 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉 ...
- luoguP2580 于是他错误的点名开始了 [Trie]
题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...
- Luogu P2580 于是他错误的点名开始了 Trie树 字典树
字典树裸题.每次插入询问串,查询的时候拿出来直接查,信息保留在节点上. #include <bits/stdc++.h> using namespace std; char s[51]; ...
- luogu2580 于是他错误的点名开始了 Trie树
模板题 #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...
- luogu P2580 于是他错误的点名开始了
luogu P2580 于是他错误的点名开始了 https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边 ...
- spring-data-jpa 中,如果使用了one-to-many , many-to-one的注释,会在Jackson进行json字符串化的时候出现错误
问题: spring-data-jpa 中,如果使用了one-to-many , many-to-one的注释,会在Jackson 2.7.0 进行json字符串化的时候出现错误. 解决办法: 通过在 ...
- [Luogu 2580] 于是他错误的点名开始了
[Luogu 2580] 于是他错误的点名开始了 不用好奇我为什么突然发水题题解- 突然觉得自己当年的幼儿园码风太幼稚,就试图把数据结构什么的用指针重写一遍- 想当年因为空间开太大而全 RE,调了一下 ...
- (转)解决fasterxml中string字符串转对象json格式错误问题(无引号 单引号问题)
原文地址:解决fasterxml中string字符串转对象json格式错误问题 com.fasterxml.jackson.databind.ObjectMapper mapper = new com ...
- P2580 于是他错误的点名开始了
题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...
随机推荐
- C#中的ReferenceEquals、Equals以及==
https://www.cnblogs.com/ArtofDesign/p/3615212.html C#中有一共有四种相等性判断方法: //Object中定义的三个方法 public stati ...
- Unity SRP Batcher的工作原理
https://blog.csdn.net/zakerhero/article/details/107714801
- Matchmaker Server 像素流送配对服务器
- CSP-J入门组
setw(2) cout<<setw(2) //设置后面显示字符的宽度为2 cout<<fixed<<setprecision(6)<<变量名;//设置 ...
- oracle查看归档信息
1.查看归档信息 show parameter recovery_file_dest #查看归档目录 show parameter recovery_file_dest_size #查看归档可以存储的 ...
- Js文章内容监听复制代码
若别人在你的网站复制内容将会提示,请把监听提示添加到文章内容div或者直接将代码复制粘贴到所需要的文件中! <script> //监听ctrl+v 复制 document.addEvent ...
- git stash (pycharm/vscode的gui演示)
git stash (pycharm/vscode的gui演示) 场景 代码刚写到一半,发现线上bug需要马上修改部署上线 此时手头的代码写一半,提交根本跑不动甚至影响原来的业务了 回滚就白瞎搬了好几 ...
- redis之缓存穿透、缓存击穿、缓存雪崩
一.缓存穿透 1 什么是缓存穿透 缓存穿透是指查询一个在redis和DB中都不存在的数据,redis中查不到去DB查,DB查不到则不写入redis,导致每次查询这个数据都要穿过redis穿透到DB 2 ...
- IDEA给【类】和【方法】设置作者和日期等注释
https://blog.csdn.net/m0_61933976/article/details/127021176 一.在Java类的开头自动注释作者名字和日期等信息 这样以后只要我们创建一个类, ...
- iOS开发之UIImage压缩处理
IOS中UIImage的数据量压缩有两种方式,一种是图片尺寸不变,降低图片分辨率,代码方法为: //1.0为压缩系数,介于0~1之间.压缩系数越小,会大大降低图片清晰度 NSData *data = ...