首页 > 其他分享 >P2580 于是他错误的点名开始了

P2580 于是他错误的点名开始了

时间:2023-11-24 13:22:05浏览次数:35  
标签:10 le 点名 cur 错误 int tr cin P2580

于是他错误的点名开始了

题目背景

XS中学化学竞赛组教练是一个酷爱炉石的人。

他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛 CON900)。

题目描述

这之后校长任命你为特派探员,每天记录他的点名。校长会提供化学竞赛学生的人数和名单,而你需要告诉校长他有没有点错名。(为什么不直接不让他玩炉石。)

输入格式

第一行一个整数 \(n\),表示班上人数。

接下来 \(n\) 行,每行一个字符串表示其名字(互不相同,且只含小写字母,长度不超过 \(50\))。

第 \(n+2\) 行一个整数 \(m\),表示教练报的名字个数。

接下来 \(m\) 行,每行一个字符串表示教练报的名字(只含小写字母,且长度不超过 \(50\))。

输出格式

对于每个教练报的名字,输出一行。

如果该名字正确且是第一次出现,输出 OK,如果该名字错误,输出 WRONG,如果该名字正确但不是第一次出现,输出 REPEAT

样例 #1

样例输入 #1

5  
a
b
c
ad
acd
3
a
a
e

样例输出 #1

OK
REPEAT
WRONG

提示

  • 对于 \(40\%\) 的数据,\(n\le 1000\),\(m\le 2000\)。
  • 对于 \(70\%\) 的数据,\(n\le 10^4\),\(m\le 2\times 10^4\)。
  • 对于 \(100\%\) 的数据,\(n\le 10^4\),\(m≤10^5\)。

本题可以直接用stl大法

using namespace std;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n,m;
	cin>>n;
	map<string,int>mp;
	map<string,int>mp2;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		mp[s]=1;
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		string s;
		cin>>s;
		mp2[s]++;
		if(mp[s]&&mp2[s]>=2){
			cout<<"REPEAT\n";
		}else if(mp[s]&&mp2[s]==1){
			cout<<"OK\n";
		}else{
			cout<<"WRONG\n";
		}
	}
	return 0;
} 

当然本题训练的是字典树

using namespace std;
const int N=1e5+10;
map<string,int>mp;
int tr[N][26];
int vis[N][26];
int cnt=1;
void insert(string s){
	int cur=1;
	for(auto c:s){
		if(!tr[cur][c-'a'])tr[cur][c-'a']=++cnt;
		cur=tr[cur][c-'a'];
	}
	vis[cur][s[s.size()-1]-'a']=1;
}
bool find(string s){
	int cur=1;
	for(auto c:s){
		if(!tr[cur][c-'a'])return false;
		cur=tr[cur][c-'a'];
	}
	if(vis[cur][s[s.size()-1]-'a']){
		return true;
	}else return false;
}
int main(){
	int n,m;
	cin>>n;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		insert(s);
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		string s;
		cin>>s;
		mp[s]++;
		if(find(s)&&mp[s]==1){
			cout<<"OK\n";
		}else if(find(s)&&mp[s]>1){
			cout<<"REPEAT\n";
		}else{
			cout<<"WRONG\n";
		}
	}
	return 0;
} 

标签:10,le,点名,cur,错误,int,tr,cin,P2580
From: https://www.cnblogs.com/yufan1102/p/17853533.html

相关文章

  • Ossclient无法自动装配和包aliyun-oss-spring-boot-starter导入错误
    无法导包 aliyun-oss-spring-boot-starter 解决办法:把 aliyun-oss-spring-boot-starter换成即可<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>2.8.3......
  • H5+ plus.barcode.Barcode 扫码控件 返回数据错误
    创建扫码控件扫描比较复杂的条形码时返回数据错误,扫到的总是一些不相干的数据,极小概率可以扫到正确的数据,代码中已经配置条码类型过滤器,filters,代码和条码如下scan=newplus.barcode.Barcode('bcid',["plus.barcode.CODE128","plus.barcode.QR"]);原......
  • C++程序编译常见错误与评测各个状态含义
    编译常见错误提示1.[Error]expected';'before'cout'。在cout前面,缺少一个分号。2.[Error]'b'wasnotdeclaredinthisscope。未定义变量名b。3.[Error]stray'\243'inprogram\stray'\273'inprogram。不可识别的非法字符。4.[Error]ldretu......
  • 引发C++异常的常见原因(一)从报错地址到错误症状
    在进行C++软件开发的过程中,会遇到很多问题,网上差不到,或者查到了也没什么信息可以用,所以这里想到了就将一些常见的问题放在一起,归纳整理一下。本文主要的内容来源于CSDN的大佬文章:https://blog.csdn.net/chenlycly/article/details/125529931,我主要是做个笔记常见问题1.变量未......
  • socket 错误码
     1#defineEPERM1//Operationnotpermitted操作不允许2#defineENOENT2//Nosuchfileordirectory文件/路径不存在3#defineESRCH3//Nosuchprocess进程不存在4#defineEINTR4//Interruptedsystemcall中断的系统调用5#defineEIO5//I/Oerror......
  • Cocos Creator 常见错误排查方法
    CocosCreator新手开发的时候经常会遇到一些错误不知道如何解决,今天把这些错误总结一下,下次遇到的时候,自己知道如何分析。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。到底谁为null或undefine我......
  • python多线程中一种错误的写法
    直接先上错误代码:importmultiprocessingdeffirst_way():init=3defprocess_function(item):result=item*initreturnresultdata=[1,2,3,4,5,6,7,8,9,10]pool=multiprocessing.Pool(processes=4)#创建一个......
  • cuda错误检测
    cuda错误检测方法宿主线程维护着一个初始化为cudaSuccess的cudaError_t类型变量,但出现错误时,该变量都会被错误代码替换。在调用cudaGetLastError()时,就会返回此变量,并将其置为cudaSucess。CUDA提供了相应的错误信息函数,常用的有以下两个:cudaGetErrorName():返回错误代码cu......
  • 关于 ts(TypeScript)报错一行上方使用 // @ts-ignore来忽略错误问题
    比如你的代码当中是使用Ts写的脚本,那么可能会有一些出现报错的情况,那么这个时候你可以使用://@ts-ignore写上这个,你的代码就不会出现报错的情况了,比如下面的代码App.VS.getView("MainLineView")?.test();即使你的类名MainLineView没有写这个方法,也不会出现报错的问题,虽然简单......
  • nodejs升级引起的构建错误
      参考实际使用升级webpacknpminstall-Dwebpack@latest升级vue-clinpminstall-g@vue/cli创建vue-clidemo重新配置vue.configwebpack>5报错问题 1、运行下面这行指令,安装在Webpack中PolyfillNode.js核心模块。npminstallnode-polyfill-webpack......