- 博客(8)
- 收藏
- 关注
原创 Pat 甲级1054 The Dominant Color(何时使用数组,vector,map)
本文讨论了处理不连续大数字存量问题的优化方法。针对传统数组方法在处理大范围不连续数字时造成空间浪费的问题,提出使用map结构来存储数字及其出现次数。map仅存储实际出现的数字,避免了数组索引的连续性要求,节省了内存空间。文章给出了具体实现代码,通过遍历map找出出现次数最多的数字。这种方法特别适合处理最大可达2^24的大数字情况,有效解决了内存超限问题。
2025-07-18 17:03:53
176
原创 Pat 甲级 1100 Mars Numbers(纯数组题解)
本文提出了一种火星文与地球文数字的转换方法。通过预处理建立一个包含170个元素的字符串数组,将0-168的数字直接映射为对应的火星文。转换规则分为三种情况:小于13的数字直接使用个位火星文;能被13整除的数字使用十位火星文;其他数字则组合十位和个位火星文。该方法实现了双向快速查询:地球文转火星文直接数组访问,火星文转地球文则遍历数组匹配。算法通过预处理简化查询过程,利用字符串比较和数组索引实现高效转换,适用于小范围内的数字转换需求。
2025-07-18 14:48:14
509
原创 Pat 甲级 1039 Course List for Student(最后一个测试点有坑)
摘要:本文介绍了解决学生选课查询问题的代码实现思路。使用map建立学生姓名与课程列表的映射,处理输入数据后按姓名查询并排序课程。关键点在于处理未选课学生的输出格式:当学生未选课时,在输出姓名 0后必须换行,否则最后一个测试点会报格式错误。
2025-07-12 21:24:59
493
原创 Pat乙级 1017 A除以B(大整数除法)(动手模拟一遍很简单)
摘要:本文介绍了如何用C++实现小学除法运算的模拟过程。通过将被除数逐位处理,与除数比较得到商和余数。关键步骤包括:1)从高位开始逐位计算商;2)将当前位的余数传递给下一位;3)处理商的前导零;4)最后保留最终余数。这个算法准确模拟了手工除法计算的过程。
2025-07-11 13:51:30
660
原创 Pat甲级 1050 String Subtraction(超简单题解)
这题只需要引入一个字符存量数组,把S2中的每个字符的字符存量-1,最后只输出字符存量为1的S1中的字符就行了,非常简单而且运行速度也很快。
2025-06-17 13:41:13
248
原创 Pat甲级 1041 Be Unique(题解,第五个测试点有坑)
这是因为给数字排名时,排名是用for循环里的i进行赋值的,而i的值是从1到N的。某个数字第一次出现时的i值可能很大,例如i=N=100000时,某个数字才第一次出现,这个数字的排名就是100000。这题要注意,在求独一无二的数字的最小排名时,虽然数字是从1~10000,但也不可以根据数字个数10000,来设定初始独一无二数字的最小排名10001。所以设置初始最小排名时就不可以设置为10001,而是设为100001及以上才能覆盖所有可能的排名。
2025-06-17 00:12:36
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅