自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Spreadsheets——C语言(模拟,字符串,进制)

X是已知的,我们只需要把它转换成整数就行了,而Y的话是由字母转换而来,我们要遍历字符串数组判断是不是字母,因为字母有26个,所以根据题意,第 27 列为 AA,第 28 列为 AB,所以如果字母大于A,用当前字母-A+1字母算出位置,如果后面还有字母就要乘以26。这是判断输入的坐标的类型,如果是由列号和行号连接而成的单元格,就转换成RXCY的坐标系统,如果是RXCY的坐标系统,就转换成由列号和行号连接而成的单元格。您的任务是编写一个程序,将所给的单元格坐标转换为另一种坐标系统下面的形式。

2024-02-06 20:38:36 737 1

原创 修复公路——C语言(并查集、排序)

村庄用公路相连,判断两村庄能否通车,这可以想到用并查集,如果两个村庄已经用公路相连了,那么这两个村庄就是并在一起的。排序好之后我们就进行合并的操作,当合并一次就令村庄数减一,当村庄只剩一个时,就是最早的时间可以通车,不然的话就没有最早的时间可以通车;再进行排序,把时间最短的排在最前面,因为要考虑代码运行的时间,所以我们不使用冒泡排序和选择排序,如果用它们时间会超限,所以我们使用最快的快排;如果全部公路修复完毕仍然存在两个村庄无法通车,则输出 -1,否则输出最早什么时候任意两个村庄能够通车。

2024-02-05 21:06:25 449 1

原创 动态规划——最大正方形

输入文件第一行为两个整数 n,m(1 ≤ n,m ≤ 100),接下来 n 行,每行 m 个数字,用空格隔开,0 或 1。在一个 n × m 的只包含 0 和 1 的矩阵里找出一个不包含 0 的最大正方形,输出边长。一个整数,最大正方形的边长。

2024-02-02 21:06:54 266 1

原创 背包问题——C语言

背包问题分为01背包问题、完全背包问题、多重背包问题等,我们现在主要了解01背包问题和完全背包问题。01背包问题是一种非常经典的动态规划问题,它可以这样描述:假设你有一个能承受最大重量为 W 的背包和 N 件物品。每件物品有自己的重量(w[i])和价值(v[i]),在不超过背包最大承重的条件下,选择部分物品装入背包,使得背包内物品的总价值最大。每件物品只能选择装入或不装入背包中一次(即“01”背包,因为每个物品要么选(1),要么不选(0))。

2024-02-01 18:54:14 945 1

原创 小小的埴轮兵团—C语言

当op == 3时,输出当前的队列中的埴轮数,就是tail - head + 1,为什么要+1,因为假如队列中有5个元素,那么head = 1,tail = 5,tail - head后少了1,所以要+1,看到这个题目,我相信大部分人已经看出来这个类似于移动窗口和单调队列问题,但是题目已经说了,不保证a数组中的元素升序排序,但是这有什么关系呢,我们只需要把a数组中元素升序排序不就可以使用单调队列了。- 第三次操作后,所有埴轮向右移动 5 格,位置变成了 [3,4] ,第二个埴轮被移出了数轴。

2024-01-31 20:10:47 482

原创 单调队列-C语言

看完题目后,我们只需要在滑动窗口时,队头超出窗口时出队,将当前元素与窗尾部元素比较,进行出队,这是一个队头跟队尾都出队的情况,所以要弄明白这里面的过程。第七次,队头超出窗口,-3出队,5大于3,从尾部出列,队列中放{3,6},输出当前元素3;第三次,队列中1和3比-1大,从尾部出列,标记到-1,次数到达3次,输出当前元素-1;第六次,队列中放{-3,5,3},输出当前元素-3;第五次,队列中放{-3,5},输出当前元素-3;第八次,队列中放{3,6,7},输出当前元素3;第二行 n 个整数,表示序列 a。

2024-01-30 20:13:39 508 1

原创 广度优先搜索(BFS)

广度优先搜索(Breadth-First Search,BFS)是一种用于图和树等数据结构的搜索算法,它从起始顶点开始,逐层地向外扩展搜索,直到找到目标节点或者遍历完整个图。是先访问起始节点,然后依次访问与起始节点相邻的节点,再依次访问这些节点的相邻节点,以此类推,直到找到目标节点或者遍历完所有可达节点为止。: 对于一个具有N个顶点和E条边的图,BFS的时间复杂度为O(N+E),其中N是顶点数,E是边数。从队列中取出C,访问C,并把C的未访问邻接顶点加入队列:[D, E, F]从队列中取出E,访问E。

2024-01-29 20:20:19 952

原创 约瑟夫问题

看到这题可以想到用模拟和队列来写,我们只需要记录报数次数等于m时就表示当前报数的人已经出圈,再标记当前报数的人的下标,继续往后标记,最重要的一点就是更新当前报数的人的下标时要对n取余,这样才能使一圈结束时,又会从头开始继续更新当前报数的人。n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。在用一个循环来判断当前人是否已经出圈,未出圈就记录报数的次数,次数达到要求就输出当前人表示出圈,

2024-01-28 12:00:00 313

原创 水龙头接水问题

看到这题首先想到的是模拟,可以想到的是一个水龙头接完水了,后面的人补到那个人上,用循环,接水的人-1,时间+1。然后将后面的接水量加入到这三个水龙头中去,先找出三个水龙头的最小值,因为它最先接完,后面的人补到这个位置,所以将后一个人的接水量加到最小的水龙头中,循环完成此方案。第 1 秒,3 人接水。第 1 秒结束时,1,2,3 号同学每人的已接水量为 1,3 号同学接完水,4 号同学接替 3 号同学开始接水。第 2 秒结束时,1,2 号同学每人的已接水量为 2,4 号同学的已接水量为 1。

2024-01-27 15:08:17 531 1

原创 全排列问题(dfs)

按照字典序输出自然数 $1$ 到 $n$ 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。这是一个很基础的dfs的题目,很适合新手入门,废话不多说,直接上代码。由 1 ~ n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 5个场宽。

2024-01-25 21:22:38 228

空空如也

空空如也

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

TA关注的人

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