registration system(map+思维)
Posted liyexin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了registration system(map+思维)相关的知识,希望对你有一定的参考价值。
题意:每次给出一个只含小写字母的字符串,如果之前没出现过,就输出YES,插入到数据库,否则输出 它+数字 的形式,数字按出现顺序排列。
解析:比如只输入a,会陆续出现a,a1,a2,a3......a10,a11。可以看出来,我们压根不需要每次判断当前字符串的上次出现是什么样子,其实本质上就是原字符串+出现次数的形式而已。所以用map记录次数,每次都++记录下就可以了。
#include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<vector> #include<cmath> #include<string> #include<map> #include<queue> using namespace std; typedef long long ll; const int maxn = 1e5+10; string s; int a[maxn]; int main() { int n; cin>>n; map<string,int>mp; for(int i=1;i<=n;i++) { cin>>s; if(mp[s]==0) { cout<<"OK"<<endl; mp[s]++; } else { cout<<s<<mp[s]<<endl; mp[s]++; } } }
以上是关于registration system(map+思维)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces水题(C. Registration system map容器的简单应用)
C. Registration system1300 / 哈希
[翻译]Component Registration in Script System 在脚本系统中注册组件