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 在脚本系统中注册组件

nyoj Registration system

1153.Decode Registration Card of PAT(unordered_map)

registration_db.go