- 博客(21)
- 收藏
- 关注
原创 CF4C Registration system(哈希实现)
解题思路:因为这道题在每次输入一个字符串后,都需要进行一次查找以判断是否需要按照规则生成新的用户名,故这道题使用STL容器map进行哈希是最合适的(map的查找时间复杂度为log n),在题目描述中,如果用户名已经被注册,那我们必须找到一个合法的正整数i来产生新用户名,故我们可开一个vector记录字符串重复出现的次数,在字符串重复出现的情况下,我们输出字符串再输入vector记录的此字符串出现的次数即可。
2025-04-29 20:59:23
279
原创 洛谷B3745[语言月赛202304] 你的牌太多了
解题思路:先出牌者记为A,后出牌者记为B,那么显然,我们需要四个容器(数组)记录A和B出牌的花色和点数,然后按照题目要求,即每一轮B出牌时他的花色应和A相同并且点数比A大,不然就不出牌,这一轮就轮空,进入下一轮,然后我们需要注意的是B可能有多张牌都满足花色相同并且点数比A大,我们需要找到其中满足要求的最小点数的牌输出,当A完成所有轮出牌,就结束游戏,然后输出B记录花色或者点数的容器的大小(即剩余的元素个数,一个元素就是一张牌)即可。
2025-01-23 19:11:25
447
原创 蓝桥杯2020年省赛C/C++B组第2题 既约分数
解题思路:本题关键是掌握求最大公约数的方法——辗转相除法,其次就是注意如何减少遍历次数,我们不需要进行完全枚举,因为既然是既约分数,它本身的分子和分母倒过来组成的新的数也是既约分数,我们只需要统计一边即可,将统计完的的结果×2-1便是最终结果(因为1/1倒过来一样,所以要减去这一重复统计的结果)
2025-01-04 21:58:19
324
原创 蓝桥杯2016年国赛C/C++C组第4题 赢球票
解题思路:因为我们不清楚从哪个数字开始数能赢得最大球票,我们便进行枚举,把从每个数开始数时能得到的最大球票数找出,并和上一次的求出的最大球票数进行比较,如果更大,就进行更新,直到遍历完所有数字,此时已得到最终的最大球票数,进行输出即可。
2024-12-28 01:14:48
392
原创 蓝桥杯2020年省赛 C/C++ A/B组第7题 回文日期
解题思路:对于这道题,我们可先对输入的数进行求余运算,分别得到年份,月份,日,然后开始枚举,判断是否满足回文条件,满足则进行输出即可。
2024-12-23 21:14:25
774
原创 蓝桥杯2021年省赛 C/C++B组第2题 卡片
解题思路:使用数组存储0-9的卡片张数,然后从1开始遍历,发现某个数无法凑齐各个数位(即存在某个数位上的卡片已被用完) 输出其前面一个数,结束循环即可。
2024-12-20 23:38:47
521
原创 数据结构 排序算法—插入排序
核心思想:插入排序可以看作是我们日常生活中玩扑克牌游戏的过程,如果有n张牌,我们对其中n-1张牌进行插入操作(因为经过n-1次操作,最后一张牌的位置已经能确定),从而得到一副从小到大的牌。换成n个数,我们对其中n-1个数进行插入操作,就可得到一组从小到大的数。但开始插入时,默认第一个数是有序的,其后的数都视为无序,我们需要做的,便是不断插入,完成有序化,直到所有数有序。实例检验:输入10个数,使用插入排序完成对10个数的排序过程,并从小到大输出。
2024-12-18 21:15:18
616
原创 PTAL1-086 斯德哥尔摩火车上的题
解题思路:从题目中可以看出,我们要做的是正确翻译这段伪代码,将它转换为计算机语言,再按照题目要求进行输出。
2024-12-15 21:19:43
642
原创 PTAL1-043 阅览室
解题思路:我们可设置一个二维数组,其行代表拿的书的编号,列用来记录两个空间,第一个空间用于检索书是否被拿走,第二个空间记录拿走书的时间,因为是“有借有还”,我们关注既出现“S”又出现“E”的情况即可,最终统计完成后,在每一轮循环中完成输出。
2024-12-12 16:40:32
691
原创 PTAL1-049 天梯赛座位分配
解题思路: 我们可以采用三维数组,即[学校][队伍][队员]的方式,将数据封装进三维数组,其中[队伍][队员]可以看成一个二维数组,而[学校]可看作是对二维数组数量的限制,我们把数据封装进三维数组后,再按照题目要求进行输出。
2024-12-12 00:36:45
877
原创 深基7.例8 赦免战俘(C语言 暴力解法)
解题思路:很容易理解题目要求,其实就是输入一个数,然后输出一个2的这个数次幂的方块阵,根据题目描述,我们很自然地将作弊者不停地分为四个小块,左上角的小块全部进行赦免,及小块所有数全为0,然后右上角 左下角 右下角 再不停地分为四个小块,直到小块形成一个二阶方阵为止,但我们也可以反过来想,我们既然可以顺着这个大型方阵,一直将它分裂成小型方阵,那我们也可以将一个小型方阵,不断聚合成一个大型方阵,即我们是可以从右上角的最小二阶方阵0 1 1 1开始“逆着”不断聚合,直到形成一个最终的大方阵,再进行输出。
2024-12-07 00:00:00
574
1
原创 CACC第二题 宝藏探测(C语言)
代码验证:本人当时参加CACC时,这道题由于没有处理好边界情况,即数组左端或右端只要一个探测数的时候,要特殊处理,防止得到错误的最大值和最小值进而产生错误的稳定值,所以当时是没通过的,当然现在其实我也没完全通过,因为题目要求对100%的测试数据n是要达到1000000的,我只定义了两个十万长度的数组,但由于本人目前代码能力有限,没有想出很好的解题技巧,如果有这道题完全通过的大神,欢迎大神们分享你们的经验。
2024-12-05 12:04:46
853
4
原创 CACC第一题 报数游戏(约瑟夫环问题)数组实现
解题思路:n个人围成一圈成一个环,我们可不必完全按照环的结构进行处理,可以以其中两个人为分界线,将所有人“拉直”,得到一条直线的结构,对这条直线结构进行遍历,报数可设置一个计数器,用于未离开的学生报数,当报到m时,使用数组将这个人“出局”即特殊标记,让其不再参与游戏,当游戏只剩下一个人时,跳出循环,再用for循环找出未被特殊标记即留到最后的人,输出其编号。
2024-12-04 14:23:20
821
原创 PTAL1-085 试试手气
解题思路:首先可设置两个数组,一个数组用于作为“桶”统计输入数出现的次数,另一个数组则用于存放输入数,用于后续统计。完成输入后,开始用for循环遍历,用于作为“桶”的数组用于找出结果并输出,同时,题目要求行末不能有多余空格,可单独使用使用一个变量统计,若为第一个数,只打印数,不打印空格,否则先打印空格再打印数。
2024-12-03 21:06:46
507
原创 PAT-程序设计(基础级)数字命理计算器
解题思路:在每一轮字符串输入中,使用字符数组存储每一行字符串,并从字符串首进行遍历,对每一位字母进行数字转换,并对数字求和,求完总和之后的数字再进行条件判断,若不为题目要求的命理数,就对求和总数进行各位数字相加,直到出现命理数,输出即可。
2024-12-02 14:53:12
610
原创 PTAL1-059 敲笨钟
解题思路:本题输出要求较为清楚,只要每一行诗句的上下两句末尾都压“ong”韵即可,可设立一个标志flag进行判断,然后对每一行进行条件判断并输出。
2024-12-01 21:27:44
605
原创 PTAL1-027 出租
解题思路:由题意知,输入是11位电话号码,可用字符数组存放,然后观察题目,很容易看出,我们需要用一个数组存放11位电话号码中互不重复的数字,可采用“桶排序”思想,设置一个整型数组存放1~9的数字并进行排序,存放入一个新的整型数组,这个数组便可用来进行对字符数组的遍历,遍历字符数组,找出相匹配的值,将下标依次存放在index数组,完成题目输出即可。本人第一次写博客,希望分享下自己做这道题的想法哈哈,如有不足,望各位高手批评指正。
2024-11-30 21:10:21
349
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅