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

为什么他还可以当特派员,不是请家长和罚钱

下午老师让我们重新做了一次背单词
,当然一个寒假都没有复习过之前的知识了说得就好像之前就听懂了,所以想找一些Trie字典树的题做一做,结果发现了这道独一无二的黄题

拿到题目之后,感觉思路特特特简单,这一看就可以直接用STL的map做啊,恰巧这几天也刚好在学一些STL的容器(参见STL初步学习)。想都不带多想,直接开干(说好的Trie呢???)

首先的思路就是弄一个<string,int>类型的map容器,最开始想用bool的,但是发现这里对于每一个名字应该有三个状态,而bool只能对应两个。我将初始值赋值为3(OK),如果他被点名了,便赋值为2(REPEAT),因为初始值应该是0,出去这两个种情况,就是WRONG了

#include<bits/stdc++.h>
using namespace std;
int n,m;
map<string,int> a;
string s;
int main(){
	cin>>n;
	for(register int i=1;i<=n;i++){
		cin>>s;
		a[s]=3;
	}
	cin>>m;
	for(register int i=1;i<=m;i++){
		cin>>s;
		if(a[s]==3){
			cout<<"OK"<<endl;
			a[s]=2;
		}else if(a[s]==2){
			cout<<"REPEAT"<<endl;
		}else{
			cout<<"WRONG"<<endl;
		}
	}
	return 0;
}
原文地址:https://www.cnblogs.com/Poetic-Rain/p/13065102.html