当前位置: 首页 > news >正文

CF4C Registration system(哈希实现)

 解题思路:因为这道题在每次输入一个字符串后,都需要进行一次查找以判断是否需要按照规则生成新的用户名,故这道题使用STL容器map进行哈希是最合适的(map的查找时间复杂度为log n),在题目描述中,如果用户名已经被注册,那我们必须找到一个合法的正整数i来产生新用户名,故我们可开一个vector记录字符串重复出现的次数,在字符串重复出现的情况下,我们输出字符串再输入vector记录的此字符串出现的次数即可。

代码实现: 

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin >> n;vector<int>num(100001);因为n最大为10的5次方,我们开成这个数即可。map<string,int>name;//定义一个map,用于存储字符串信息for(int i=0;i<n;i++){string str;cin >> str;//完成字符串的输入auto iter=name.find(str);//查找是否这个字符串在之前出现过,返回一个迭代器if(iter==name.end())//如果相等说明字符串未出现过,属于合法条件{name[str]=i;//创建一个键值对,map中有了此字符串的信息,i可以理解成它是第几次输入出现的字符串cout << "OK" << endl;//因为字符串之前未出现过,那么直接输出"OK"即可}else{int s=iter->second;//迭代器解引用得到的是一个pair类型,我们用->second访问字符串信息num[s]++;//记录这个字符串出现的次数cout << str << num[s] << endl;//输出按照规则生成的新用户名} }
}

 

 

相关文章:

  • AnimateCC基础教学:漫天繁星-由DeepSeek辅助完成
  • day31 第八章 贪心算法 part05
  • 生活需要一些思考
  • ppt箭头素材图片大全
  • 如何提升自我价值?
  • std::string的底层实现 (详解)
  • [4-06-09].第10节:自动配置- 分析@SpringBootApplication启动类
  • 防爆风扇储能轴流风机风量风压如何保障通风安全?
  • java每日精进 4.29【框架之自动记录日志并插入如数据库流程分析】
  • Lucene 分词工具全解析与对比指南
  • Spring AI在大模型领域的趋势场景题深度解析
  • 网络原理 - 11(HTTP/HTTPS - 2 - 请求)
  • Shopify网上商店GraphQL Admin接口查询实战
  • idm 禁止自动更新提示(修改注册表)
  • Spring MVC中自定义日期类型格式转换器
  • 精益数据分析(32/126):电商指标优化与搜索策略解析
  • 【Python笔记 05】 if判断、比较运算符与逻辑运算符
  • Linux Ollama离线安装/更新教程-适用于国内快速下载Ollama最新版本(亲测好用)--适用于Qwen3 系列模型
  • 2025年- H12-Lc119-56.合并区间(普通数组)---java版
  • ROS2 学习
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 建发股份:将于5月6日召开股东大会,审议提名林茂等为公司新一届董事等议案
  • 日月谭天丨赖清德强推“脱中入北”是把台湾带向死路
  • 国家税务总局:“二套转首套”可以享受贷款利息个税专项扣除
  • 脱发后怎么把头发养回来?脱发自救指南来了
  • 央行副行长:我们在研究丰富政策工具箱,将适时推出增量政策