哈希
新西兰做的饭
Here we go!
展开
-
PTA——1090 危险品装箱(含超时分析)、1065 单身狗
这两题很像,这一题是1065题的升级版。1065单身狗是两两配对不重复的,即文意“不会脚踏两只船”。本题是相当于哈希表链式存储,一个人可以同时和多个人配对。解题方法是一样的,创建is数组,如果来客有配对就将其配对在is数组中赋值为1。原因是vector(N)会产生更多的缓存未命中,而map使用更少的内存,会显著提高命中率。本题不可用并查集做,因为1和3配对,3和5配对但不代表1和5是一对。存储,耗时大大下降,节省3/4的时间,代码上不需有任何的改动。,则说明与他配对的人来过,即他俩同时出现,输出No。原创 2024-03-15 18:20:49 · 368 阅读 · 1 评论 -
PTA——1041 考试座位号、1042 字符统计、1043 输出PATest、1044 火星数字
利用哈希表,最后按照PATest顺序输出,只要这几个字符的哈希值不为0,就循环输出,谁先到0了谁停止输出。处理起来有点麻烦,注意进制转换的经典例子:130转换为13进制,应该为oct而没有后面的0(tret)。利用哈希表,最后输出字母即可。利用哈希表整合信息输出即可。原创 2023-03-29 21:18:49 · 230 阅读 · 1 评论 -
PTA——1036 跟奥巴马一起编程、1037 在霍格沃茨找零钱、1038 统计同成绩学生、1039 到底买不买、1040 有几个PAT
遇到P就nump++,直到遇到A,A字符前面P的个数和后面T的个数的乘积即为这个A所在的PAT串的个数,将其取模累加。先统计整个串中T的个数numt,随后遍历整个串,遇到T就numt–,此时numt代表串后面的t的个数。利用两个哈希表,先统计摊主的珠子个数,再利用unordered_map统计小红的珠子种类以及个数。如果结果为非正数,则说明不缺少,输出摊主珠子个数 — 小红珠子个数 即为多余的珠子个数。接着对于小红的每种珠子,利用sum累计比摊主多了多少个(即为缺了珠子)。参考了柳神的代码,大佬太强了。原创 2023-03-29 18:44:45 · 353 阅读 · 0 评论 -
PTA——1031 查验身份证、1032 挖掘机技术哪家强、1033 旧键盘打字
注意英文字母的坏键用大写字母给出。因为可能有空白字符串,所以要使用。使用哈希表解决很方便高效。函数接收一行中内容。原创 2023-03-26 21:25:35 · 204 阅读 · 0 评论 -
PTA——1029 旧键盘、1030 完美数列
哈希解决非常方便,用字符的ASCII码值作为key,因为输出大小写不敏感,所以我们在哈希映射之前就把失配的小写字母转化为大写字母,哈希映射并压入输出数组out。最后一个测试点不通过是因为我这样写有一种可能b与a的匹配部分全部相等,而这种情况a的b没匹配到的后面部分直接处理并哈希映射即可,因为他们全部失配。,去计算前一个位置一定满足条件的长度。但是如果序列到最后一个位置都不满足这个条件,则len永远不会更新,导致WA。,下次直接从已找到序列的下一个位置开始枚举即可。我最开始写错了,将更新条件设置为了。原创 2023-03-25 21:19:20 · 139 阅读 · 0 评论 -
PTA——1021 个位数统计、1022 D进制的A+B、1023 组个最小数
注意一下num数组中的数不一定是十个就好了。模拟一遍进制转换即可。原创 2023-03-19 19:41:00 · 58 阅读 · 0 评论