自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 Floyd之蓝桥公园

Floyd算法用来求解任意两点间的最短路。

2024-04-05 15:54:27 874

原创 Dijkstra堆优化之蓝桥王国

Dijkstra算法是最短路径的一个重要解法,但是只能用于正值带权。

2024-04-01 15:01:25 813

原创 DFS练习之开心(蓝桥)

首先,通过深搜寻找所有可能的位置。比如 n = 1234,k = 1,那么从dfs(0)开始,一个就可能分别出现在向量的 0/1/2 三个索引位,当放置在索引 0 时,成功出口来调用 update 函数求解最大、最小值,并且计算差值。特别地,update 函数首先会在向量的尾部放入数位的最后一位(在示例里是3),其作用是后分割点,当进入该函数时,假如向量。

2024-02-20 10:38:42 931

原创 DFS/BFS染色算法之混镜之地2(蓝桥)

代码大致流程为,起点染色、判断是否有合法通路(是则输出Yes)、若为否则终点染色、判断墙的四周是否大于等于两种颜色(是则输出Yes/否则No)。特别地,在墙壁四周判断时根据染色的色号1/2,在二进制中0|1=1/0|2=2/1|2=3,遍历4次最后的结果若为3,则表示四周有大于等于两种颜色,即砸开该墙壁后有一条合法通路,输出Yes。O%28nm%29。

2024-02-14 14:51:18 1362

原创 深度优先搜索(DFS)之飞机降落

DFS的前置知识是递归(自己调用自己),在DFS函数形参中,设置了变量last,表示上一架飞机降落结束(当前飞机可降落的最早时间),初始化为0,而后是上一架飞机等待时间与降落时间之和。其中第 i 架飞机在 Ti​ 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di​ 个单位时间,即它最早可以于Ti​ 时刻开始降落,最晚可以于 Ti​+Di​ 时刻开始降落。“尝试”意味着我们需要检查该飞机是否可以在当前的时间内开始降落,即它的开始降落时间是否在 Ti ~ Ti+Di 的时间段内。

2024-02-05 17:01:54 973

原创 广度优先搜索(BFS)之走迷宫

宽搜的前置知识是坐标系和队列,前者用来存储矩阵数据,后者用来对数据进行先进先出的操作。

2024-01-26 00:07:46 913

原创 PAT乙级1025 反转链表

感谢柳神思路,第一行输入的是第一个结点的地址first,结点个数n和每次反转个数K。循环n次,每次输入对应的地址,数据和下一个数据的地址。为了让彼此建立联系,采用类似哈希表的形式,定义整形变量index为地址,定义两个整形数组分别代表该地址的数据和该地址的下一个地址;其次题目输入的结点可能无效,所以需要定义sum统计有效结点的个数,在这过程中将数据从小到大放入order数组;随后根据条件每K个结点反转一次,输出。

2023-02-21 19:51:59 119

原创 PAT乙级1024 科学计数法(部分正确)

将输入借助string类型的erase()和insert()函数,直接通过变化变换成输出的格式。

2023-02-21 14:44:04 69

原创 PAT乙级1027 打印沙漏(C语言)

没有好的思路,就是根据题目输出。其中定义b[]存储每一个奇数。

2023-02-20 22:04:08 86

原创 PAT乙级1023 组个最小数

先输出出第一个非零的数,再从小到大输出。

2023-02-19 21:27:26 67

原创 PAT乙级1022 D进制的A+B

这里定义整形数组,优点是不会存在赋值时的类型不同导致的答案错误,缺点是无法直接获得数组内实际元素个数,所以会采用k++计算。根据十进制转换成D进制原理,除基取余法(整数)并逆序输出。

2023-02-19 17:39:18 39

原创 PAT乙级1021 个位数统计

哈希表,坐标作为值。

2023-02-19 16:15:09 45

原创 PAT乙级1020 月饼

定义结构体存储变量,再定义vector v(n)为存放n种月饼的一维数组,按照单价排序,根据需求量输出。

2023-02-19 11:36:17 45

原创 PAT乙级1019 数字黑洞(C语言)

用字符串存储输入数字,定义两个变量存储并分类排序,转换成整形(stoi())后相减,因退出循环需要比较条件,故又转换回string类型(to_string()),其中退出条件包括“6174”“和0000”。

2023-02-19 09:22:56 116

原创 PAT乙级1018 锤子剪刀布

代码有些冗杂,容易出现错误,还需优化,其中胜场相同时输出字母较小的判断条件jiaB>=jiaC是关键,努力加油。

2023-02-17 21:51:03 66

原创 PAT乙级1017A除以B

一般会想这么简单,直接用“/”和“%”不就完事儿了吗,但是题目给的数长度非常大(1000),无法一次性运算,所以需要根据除法规则一步一步运算。

2023-02-17 17:31:14 93

原创 PAT乙级1016 部分A+B(C语言)

注意格式转换a[i]-'0'将char类型转换为int类型,否则相等条件无法成立。

2023-02-17 16:05:38 46

原创 PAT乙级1015 德才论(C语言)

熟悉了结构体与结构体数组的使用,若有大量类似的数据,利用结构体统一收集,有多少类数据就定义多少个变量,定义vector结构体数组,将变量分类存入。

2023-02-16 21:19:20 154

原创 PAT乙级1014 福尔摩斯的约会(C语言)

不够严谨,审题不够仔细,前两行0~23点的时间比较除了字符A(10点)~字符N(23点)之外,忽略了0~9点的数字情况,导致部分错误。

2023-02-15 17:43:20 196

原创 PAT乙级1013 数素数(C语言)(需借鉴)

刚开始n++的位置放置错误导致了死循环,以及在思考如何每十个换行时花费时间较久,思路不清晰,万幸AC,每次做完自己潦草的解法后,记得寻找更优算法向大佬学习。

2023-02-14 21:56:16 149

原创 PAT乙级1012 数字分类(C语言)(部分正确)

常规思路,将各自符合条件的数字存入不同变量并进行运算、输出。个人代码冗长但思路简单易想。

2023-02-13 16:14:31 66

原创 PAT乙级1011 A+B 和 C(C语言)

孰能生巧,long类型可增大数字范围。

2023-02-13 16:06:49 51

原创 PAT乙级1010 一元多项式求导(C语言)

学会控制输入来简化代码,如上可得知规律后2个数为一组。

2023-02-12 17:42:10 58

原创 PAT乙级1009 说反话(C语言)

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。需熟悉#include ,其可以逆序输出或判断回文数。给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。每个测试用例的输出占一行,输出倒序后的句子。利用栈先进后出的定义,将每个单词逆序输出。

2023-02-12 16:34:42 53

原创 PAT乙级1008 数组元素循环右移问题(C语言)

一般可能的想法是从最后一个数字出发依次挪到数组首位,但操作困难且复杂,推荐(柳神)思路:即利用C++头文件#include 中的reverse()函数。若想对长度为N的数组循环右移M个位置,则先将数组倒置,其次将前M个数字倒置,最后将剩余第N-M到第N个数字倒置即可。(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移。位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。每个输入包含一个测试用例,第1行输入。个整数,之间用空格分隔。(≥0)个位置,即将。

2023-02-12 15:40:26 64

原创 PAT乙级 1007 素数对猜想(C语言)

思路根据素数定义:只有1和改数本身两个正因数的数。第一个想到暴力解法但是时间复杂度会是,一般情况会超时。根据题意,首先要根据定义先找出素数,然后找出符合题意的素数对输出。

2023-02-05 09:17:03 65

原创 PAT乙级1006 换个格式输出整数(C语言)

使用万能头文件#include 时需要知道该环境支不支持。加油,多练,熟能生巧。

2023-01-17 12:05:05 228

原创 PAT乙级1005 继续(3n+1)猜想(C语言)

卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他数字所覆盖。

2022-12-07 17:48:51 127

原创 PAT乙级1004 成绩排名(C语言)

读入n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

2022-12-02 19:53:06 64

原创 PAT乙级1003 我要通过!(C语言)

“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。

2022-12-01 19:47:59 84

原创 PAT乙级1001 害死人不偿命的(3n+1)猜想(C语言)

卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

2022-11-29 23:31:36 96 1

原创 PAT乙级1002 写出这个数(C语言)(部分正确)

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

2022-11-29 11:56:57 125

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除