
hash习题
pathash学习
harkbox
时间不等人
展开
-
hash学习之Pat1048 Find Coins
输入: N代表硬币的总数 m所拥有的钱 输出: v1+v2=M v1<=v2 如果解决方案不唯一,输出最小的v1 没有解决方案输出 No Solution 第一次提交: 存在测试点运行超时,原因在于二次循环的地方, 可以进行思路的调整,循环内部不用遍历进行整个数组, 可以用hash来表示是否存在数字,然后检测满足和为M的数字是否存在 思路: 1.输入数字到数组中,数组大小大于100000 2.对数组进行由小到大的排序 3.由第一个开始往后遍历,由于是从小到大的排序,所以保证了V1<=V2,且输出原创 2022-03-28 09:07:34 · 204 阅读 · 0 评论 -
hash学习patA1050 String Subtraction
hash类型的基本做法: 1.录入hash数据,并且保存原始数据 2.根据hash数据进行处理 字符串常见的边界情况: 1.一个是空字符串 2.字符串s1的长度和s2的长度不一定,需要注意处理情况 #include <iostream> #include<string> #include<stdlib.h> #include<stdio.h> #include<string.h> #include<algorithm> //1050 S原创 2022-03-27 11:14:23 · 166 阅读 · 0 评论 -
hash学习pat1041 Be Unique
1041 Be Unique (20 分) Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,10 4 ]. The first one who bets on a unique number wins. For example原创 2022-03-27 10:44:21 · 213 阅读 · 0 评论 -
PatB1042 字符统计
加粗样式## 1042 字符统计 (20 分) 请编写程序,找出一段给定文字中出现最频繁的那个英文字母。 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。 输入样例: This is a simple TEST. There AR原创 2022-03-25 11:38:20 · 141 阅读 · 0 评论 -
PatA1092To Buy or Not to Buy
whole pieces整件 题目大意:第一个字符串代表全部的面包 第二个是这个人人想买的面包,检查商店出售是否包含这个人全部 想要的 包含 yes 并且说明多买几个 不包含 no 说明错过几个 0-9 a-z A-Z代表颜色 注意条件: 1.人买的可能比商店卖的多 2.面包数量也要对上 3.利用负数代表差几个面包的时候,需要注意只有第一个字母有效 比如A hash值为-1,那么接下来的A的hash值不应该继续使用 题目思路: 1.首先将面包录入hash中 ,hashtable为ascii 2.商店卖的++原创 2022-03-25 11:17:54 · 381 阅读 · 0 评论 -
HashPat1029旧键盘
1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。 输入格式: 输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。 输出格式: 按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏原创 2022-03-24 11:05:35 · 78 阅读 · 0 评论 -
hash1043 输出PATest
#include <iostream> #include<string> #include<stdlib.h> #include<stdio.h> #include<string> //1043 输出PATest /* 直接hash统计人数即可 思路: 1.利用数组按照顺序保存其本来的ascii码的位置 统计这六种字符数目 2.按照顺序输出,并减一,若减为0则跳过 */ using namespace std; int main() {原创 2022-03-26 09:48:43 · 184 阅读 · 0 评论 -
hash学习Pat1047编程团体赛
注意: 1.使用sscanf将字符串转为数字,会存在一个测试点过不去 2.直接使用sscanf控制格式来获得数字 #include <iostream> #include<string> #include<stdlib.h> #include<stdio.h> #include<string.h> //1047 编程团体赛 /* 思路: 1.直接利用hash【1001】和即可 并用max保存最大的队伍号 由于格式一样,当作字符串来输入一行,根据s原创 2022-03-26 10:28:38 · 448 阅读 · 0 评论 -
hash学习PatB1005 继续(3n+1)猜想
1005 继续(3n+1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关原创 2022-03-26 11:24:32 · 141 阅读 · 0 评论