Luogu2580 于是他错误的点名开始了 (Trie树)
复习\(Trie\),忘了用\(val[]\)表示每个节点权值,用\(vis[]\)水过了
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Abs(a) ((a) < 0 ? -(a) : (a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long
#define ON_DEBUG
#ifdef ON_DEBUG
#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#define FileOpen() freopen("in.txt","r",stdin);
#else
#define D_e_Line ;
#define D_e(x)  ;
#define Pause() ;
#define FileOpen() ;
#endif
struct ios{
    template<typename ATP>ios& operator >> (ATP &x){
        x = 0; int f = 1; char c;
        for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;
        while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();
        x*= f;
        return *this;
    }
}io;
using namespace std;
#include <bitset>
int n;
char s[1007];
bitset<1007> vis[500007];
int trie[500007][26], trieIndex;
inline void Insert(char *str){
	int rt = 0;
	for(register int i = 0; str[i] != '\0'; ++i){
		int v = str[i] - 'a';
		if(!trie[rt][v]){
			trie[rt][v] = ++trieIndex;
		}
		rt = trie[rt][v];
	}
}
inline int Query(char *str){
	int rt = 0, tot = 0;
	for(register int i = 0; str[i] != '\0'; ++i){
		int v = str[i] - 'a';
		if(!trie[rt][v]){
			return 0;
		}
		rt = trie[rt][v];
		++tot;
	}
	if(vis[rt][tot]) return 2;
	vis[rt][tot] = 1;
	return 1;
}
int main(){
    io>>n;
    R(i,1,n){
    	scanf("%s", s);
    	Insert(s);
    }
    int Ques;
    io >> Ques;
    while(Ques--){
    	scanf("%s", s);
    	int ans = Query(s);
    	switch(ans){
    		case 0 :{
    			printf("WRONG\n");
    			break;
    		}
    		case 1 :{
    			printf("OK\n");
    			break;
    		}
    		case 2 :{
    			printf("REPEAT\n");
    			break;
    		}
    	}
    }
    return 0;
}

Luogu2580 于是他错误的点名开始了 (Trie树)的更多相关文章
- luogu2580 于是他错误的点名开始了 Trie树
		模板题 #include <iostream> #include <cstring> #include <cstdio> using namespace std; ... 
- Luogu P2580 于是他错误的点名开始了 Trie树 字典树
		字典树裸题.每次插入询问串,查询的时候拿出来直接查,信息保留在节点上. #include <bits/stdc++.h> using namespace std; char s[51]; ... 
- 于是他错误的点名开始了 [Trie]
		于是他错误的点名开始了 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已 ... 
- P2580 于是他错误的点名开始了(trie)
		P2580 于是他错误的点名开始了 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉 ... 
- luoguP2580 于是他错误的点名开始了 [Trie]
		题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ... 
- luogu  P2580 于是他错误的点名开始了
		luogu P2580 于是他错误的点名开始了 https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边 ... 
- [Luogu 2580] 于是他错误的点名开始了
		[Luogu 2580] 于是他错误的点名开始了 不用好奇我为什么突然发水题题解- 突然觉得自己当年的幼儿园码风太幼稚,就试图把数据结构什么的用指针重写一遍- 想当年因为空间开太大而全 RE,调了一下 ... 
- 于是他错误的点名开始了(trie树)
		题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ... 
- 洛谷 P2580 于是他错误的点名开始了
		题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ... 
随机推荐
- 【系统问题】windows10打印就蓝屏-报错误代码“win32kfull.sys”
			现象描述: 打印机一打印电脑就蓝屏,蓝屏错误代码为:win32kfull.sys 原因分析: 2021年3月9日-推送了KB5000802补丁更新(操作系统内部版本19041.867和19042.86 ... 
- TornadoFx设置保存功能((config和preference使用))
			原文地址:TornadoFx设置保存功能(config和preference使用) 相信大部分的桌面软件都是存在一个设置的界面,允许用户进行设置的修改,此修改之后需要保存的本地,若是让开发者自己实现, ... 
- CF Divan and Kostomuksha
			题意:NKOJ CF 思路:首先发现贪心不了.因此dp.然后这题需要维护的就\(g_i\)和\(sum{g_i}\) 状态:\(dp[i]\): 当前最后一个为\(g_i\)的最大值 \(dp[i]= ... 
- 详解PHP如何实现斐波那契数列的简单实例
			文章来自:有解网 http://www.youjieweb.com/original/index/articleId/64.html 使用场景: 面试 本文讲的是如何用php实现PHP实现斐波那契数列 ... 
- 重学ES系列之新增的几个循环方法
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- .NET6接入Skywalking链路追踪完整流程
			一.Skywalking介绍 Skywalking是一款分布式链路追踪组件,什么是链路追踪? 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软 ... 
- C# · 委托语句简化演变
			1.委托基础语句形式 namespace QLVision { delegate void dHelp();//定义委托 static class Program { /// <summary& ... 
- 【python基础】第11回 数据类型内置方法 02
			本章内容概要 列表内置方法 字典内置方法 元组内置方法 集合内置方法 可变类型与不可变类型 本章内容详细 1.列表内置方法 list 列表在调用内置方法之后不会产生新的值 1.1 统计列表中的数据值的 ... 
- Pod控制器类型
			Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: - 自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不 ... 
- Vite+TS带你搭建一个属于自己的Vue3组件库
			theme: nico 前言 随着前端技术的发展,业界涌现出了许多的UI组件库.例如我们熟知的ElementUI,Vant,AntDesign等等.但是作为一个前端开发者,你知道一个UI组件库是如何被 ... 
