字符串练习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). ...
随机推荐
- spring 任务执行器实例
@Resource(name = "jobTaskExecutor") protected TaskExecutor jobTaskExecutor; @Override publ ...
- 解决uniapp 使用自带 switch 双向绑定视图不更新的问题
使用 this.$set( a, b, c) a:需要更新视图属性对象 b:具体的属性值(就是你要更新视图的属性值) c:传递的参数 this.$set(this.gwjSelet,this.gwj ...
- SQL SERVER 截断大日志文件
1.改成完整模式下,先完整备份,然后只备份事务日志2. 改成简单模式,然后截断(运行下边示例代码)3.再备份事务日志(观察LDF文件有没有变小)-----收缩大日志 SELECT * FROM sy ...
- 实时搜索引擎Elasticsearch
Elasticsearch(简称ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. E ...
- Scrapy模块和Asyncpy模块
Scrapy笔记 scrapy的环境安装 mac or linux: pip install scrapy windows: pip install wheel scrapy框架异步请求基于Twist ...
- JS学习-异步JS
异步JS setTimeout() 我们希望传递给setTimeout()中运行的函数的任何参数,都必须作为列表末尾的附加参数传递给它. function sayHi(who) { alert('He ...
- JQuery 页面滚动至指定元素位置
$(window).scrollTop($("#id").offset().top - 20);
- Js文章内容监听复制代码
若别人在你的网站复制内容将会提示,请把监听提示添加到文章内容div或者直接将代码复制粘贴到所需要的文件中! <script> //监听ctrl+v 复制 document.addEvent ...
- PostScript语言教程(七、条件语句)
POSTSCRIPT语言中有许多操作符用于制定程序内流的控制.我们在前一章使用了一个repeat运算.所有的控制操作符都使用了之前简要提到的对象类型,即函数,用于我们调用. 7.1.函数 函数(既过程 ...
- HTML——VSCODE配置笔记
# 使用VSCODE编辑前端代码 ### 1.问题一:无法根据!快速生成html标准代码 (1).首先看文件命名是否出错,即文件名后缀名.html (2).第一步没出错,就在新建文件的编辑状态下拨动C ...