自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓄水.....

for j 遍历在当前倒水次数下,需要升级多少次桶。更新最少次数(倒水+升桶)for i 固定倒水次数。

2023-05-22 08:15:22 105

原创 C语言qsort函数、活字印刷、cmd窗口

qsort函数就是快排,可以不用写那么一长串的代码了qvq,要用到stdlib.h库文件那么具体用法就是当然我们还要用一个比较函数来确定快排的升序,也就是cmp对于不同的类型,我们有不同的比较方法。

2023-05-19 22:00:48 158

原创 负二进制数相加

这个题其实要明白这个二进制的转换,就可以做出来了,我刚开始想的是直接转换成十进制,然后最后再相加起来,然后再转成二进制,这样最开始做的话我也不知道怎么错了,因为力扣这个不好测试嘛,所以就去看了题解,那么题解是这样说的。而当sum = 2的时候我们就好向前减一,那么就c = -1,而当sum = -1时,c = 1,sum = 1;我们将俩个数组相加,满足sum = a + b + c ,c是进位标志,会得到以下数据:1 , 2 , 0。那么明白这个道理之后就不用,就可以代码实现了。

2023-05-18 21:55:52 249

原创 判断两个事件是否存在冲突

这个题最主要的是判断event1的终止时间是否比event2的起始时间大,如果小的话,那么俩个时间点必没有交集。值得一提的是,要注意event1不一定比event2的时间早。

2023-05-17 21:31:22 116

原创 工作计划的最低难度

其中dp[i][j]表示 第i+1个段选择的数据长度为 j+1 (i <= j <= jobDifficultySize-1 - (d-i-1)),保证最少在i之前和之后每一个段有一个数据。转移方程:dp[i][j] = MIN(dp[i][j], dp[i-1][k-1] + max);即当前区间的最大值 + 上一个区间的最优解 与 当前区间的当前最优解对比。dp[0][j]为第一个段的长度为 j,则肯定只能为 jobDifficulty[0] - jobDifficulty[j] 区间的最大值。

2023-05-16 22:25:28 75

原创 钥匙和房间

这道题可以用bfs拿来做,其具体方法就是我们将一个房间入队,然后再将其相连的房间也入队,出队的时候做好标记,当出完队之后,如果还有房间没有标记,那么就将这个房间输出。

2023-05-15 23:41:58 40

原创 小孩爱吃糖

这个题我最开始想的是,每人至少发一颗,然后如果有比别人表现好的就多发一颗,就俩颗,很明显这道题没有这么简单,这个是要在前后俩个人相比,如果有一个比人好的,那么就直接在三个人中找获得最多糖果数的人,然后最好的那个人就获得糖果数最多人的一颗。

2023-05-15 00:32:01 54

原创 与对应负数同时存在的最大正整数

这个题我想的是将数组中的负数全部找出来放进另一数组,然后再将原数组的元素与与之相比,如果相加等于0,那么就使num++;

2023-05-14 02:34:38 95

原创 洛希极限....

这题没什么好说的,看着就让人生气,这个题我只是在判断的时候是判断的b==0,然后就不行了,它必须要b==1才行,这又是什么逻辑?

2023-05-13 01:49:07 52

原创 子串能表示从 1 到 N 数字的二进制串

这个题要可以直接暴力求解,就是将n变成二进制数后,直接将其与字符串对比,如果相同的话就输出true,不相同的就输出false。

2023-05-12 02:20:14 37

原创 可被k整出的最小整数、省份数量

这个题就是判断1,11,111,1111,依次类推的这样的数,是否能被k整除,然后计算出最开始能被整除的那个数的长度,我最开始用的for循环,结束条件是n>=100000,因为题目给的数据范围就是这么大,但是tnnd假数据,实际比这个大多了,那么这时候怎么办呢。这个题可以用dfs来做,也就是当我们找到一个点之后,就搜索它所能连接到点,然后进行标记,表示已经搜索过了,这时候记数就加1,然后继续进行搜索,标记过的点就不用搜了。也就是说n = ( n * 10 + 1) % m;

2023-05-11 02:13:36 40

原创 二叉树的层级遍历以及[NOIP2015 普及组] 扫雷游戏、有效时间的数目

' ,就这么简单,我觉得难的是字符串输入.......,因为是二维数组,每行输入的时候还要把换行输进去,所以就很麻烦,但是还是做出来了,不过挺狗血的。这道题没什么好说的,存粹的逻辑题,这是你要注意一下该怎么判断,哪个点应该怎么做,我是通过一个个字母是否等于 '?二叉树的层级遍历看着比其他遍历简单,但是我感觉实施起来却比其他遍历难,它主要是通过队列实现的。然后将b出队,将b的左儿子和右儿子入队 队列:f c d。还有就是一点你答案的换行要输出正确,不然也是不对的.........

2023-05-10 01:24:54 567

原创 完全二叉树的节点个数、[NOIP2003 普及组] 乒乓球

其实吧这个题可能就是题意有点难读懂,而且我感觉它好像没有把意思全部说出来,比如那个直到分差大于2就结束,他没有说完整,我以为是一条不怎么重要的信息,因为从后面的实例也看不出来,还有就是真的要有一方分数大于制度分才能结束,我举得还是把我恶心到了。这道题简单划过,运用递归的思想,不断找到左儿子和右儿子,在找的时候不断num++;

2023-05-08 22:21:23 99

原创 总持续时间可被 60 整除的歌曲

我们知道一个数除以一个数,会有余数,当一个余数和另一个余数加上等于6的时候,那么这时候这俩个数就可以被60整除了,要注意的是余数为0的时候,另一个数也要是余数为0。这题用暴力的话就是直接就时间超限了,所以用官方的思路就是用组合数学。

2023-05-07 23:54:56 22

原创 数青蛙​、[USACO10FEB]Chocolate Giving S

我们用frog_ num来表示现在正在发出蛙鸣声的青蛙数目,用cnt[c] 示已经发出-次有效蛙鸣中的字符c的青蛙个数,比如当cnt['c'] = 2时表示当前有2只青蛙已经发出了有效蛙鸣中的字符‘c’,下-个要发出学符r'。这道题是一道最短路劲的问题,虽然当时做的时候读懂题意花了很久,但是细想的话就很简单,就它就是多了一道要从a去b的时候还要必须经过一个点1,这样可以分成俩段路径,一种是1到a点的最短路径,一种是1到b点的最短路径,这样做就很简单了。这道题有俩种解法,一是记数,二是贪心。

2023-05-07 22:00:22 534

原创 刷题记录qvq

这个题主要是考数学吧,它这个就是求每个时间段的差,然后找到最大的那个时间段的差,输出它这个时间段的员工id就行了,当有相同的话,我们就进行判断,是不是小于那个id就行了。这道题就是一道基本的并查集的模板.....

2023-05-06 01:47:38 29

原创 刷题记录˃ʍ˂

这个题可以联想到树的结构,我们可以从最底层的员工开始向不断的找他的上级,再找的过程中,把通知的时间都加上,然后与max(最长的时间)相比,将较大的时间赋给max,然后再去找下一个底层员工,那么最后的max就是要通知所有员工的话要用的时间。我们可以设置一个记录次数的数组,当一个字母出现过,那么次数至少为1,用字母的位置在新数组中显示,后面遍历数组的时候,遇到第一个次数为1 的,直接返回它的位置;要注意一点的是,当把字符串中的括号全都遍历完时,如果栈里面还有括号,那么也是不正确的。首先这个题,可以用哈希。

2023-05-04 22:37:38 1723

原创 4.29补题记录

首先这道题我最开始想的是bfs记录步数来做的,当时测试的时候没写出来,后来,看补题的时候,才发现这个就是简单的数学问题,我们只要计算出初始点到终点的起始的x轴坐标之差最小值和y轴坐标之差最小值,然后再相加,就可以得到它的最短距离了,要注意的是它可以穿越,而且数据范围很大。这个题我用的是枚举暴力,答案肯定是超时的,但是我也想不出更好的办法,然后后来就看了补题,可以用前段和来做的,我对这个一点也没有印象,以前肯定是做过的,但是最近就没有刷题,然后就忘了,由此可凸显出刷题的重要性。

2023-04-30 10:59:57 97

原创 二叉搜索树

那么接下来,如果我想查找一个数,应该是怎么查找的呢,我们是按二叉搜索树的性质进行查找的,因为我们一旦找到了谁比谁大,就能排除掉一半的数据,例如9,那是不是8左边的数据都比9小了呢,所以这个还比一般的查找时间要快一下。而这时你遍历中序遍历的时候,你就会发现它们全都是从小到大排列的,因为中序遍历的顺序是左根右,那不就是以根为先把比根大的遍历完,再遍历小的了嘛。在这整颗树中,你可发现,根节点4的左边全是小于它的,在根结点4的右边全是大于它的。2.若它的右子树不空,则右子树上所有结点的值均大于它根结点的值。

2023-04-26 01:42:34 328

原创 项目设计:迷宫游戏设计day4

这个就是要用到栈的共呢个,就是把每走的一步存进栈中,然后在这个过程中,每走一步,步数加一,每一栈存的是如何到达上一步,比如我上一个位置是上面,那么存的数据则是(-1,0),则晦步的时候,就将这个数据弹出来,就实现了晦步。那么今天的任务就是实现自定义模式的计算步数,以及晦步。今晚上再把整个程序优化一下吧,排行榜应该是做不了了。

2023-04-23 22:18:22 88

原创 项目设计:迷宫游戏设计day3

人物的移动,这里我是用的不显示输入,当你输入'w'时,就要先判断,如果人物的下一个位置是路的话,那么就把路变成人,把原本的位置变成路,其他的移动也是如此,如果下一个位置是墙的话,那就不做任何操作,如果下一个是出口的话,就就将下一位置变成人,原本的位置变成路,那么这时候还要进行一个判断,因为这个时候就是就已经通关啦,就要找一下有没有出口(肯定是没有的啦),没有的话就跳到下一关去啦。我用的easyx实现图形化界面,在制作第一个界面的时候,第一个界面的功能有开始游戏,退出游戏,排行榜(虽然还没实现)

2023-04-22 23:37:41 994 3

原创 项目设计:迷宫游戏设计day2

今天主要把搜出最短路径想出来了,但还是没有优化,其思想就是,再搜的时候,记录它的前驱结点,这样就能在最后的时候就可以把它的最短路径以反序遍历的方式,将他输出出来。

2023-04-18 02:25:09 337

原创 项目设计:迷宫游戏设计day1

这是其中的一部分功能,其目的就是想找出迷宫从入口到出口的最短路径,它能显示路径,因此我想的方法就是用bfs进行搜索,寻找最优解,或者用最短路径的方法?但是我平常学的都是计算边权和的最小值,好像也有可行性。其实做这个游戏,仅仅实现地图的设计,人物的移动是很简单的,但是这样就缺少最重要的数据结构,所以今天主要想的是,能把哪些算法,哪些结构放进这个项目中;最开始我想的是用二维数组进行存图,但是应该会有其它方式存图,链式前向星?这些我都还在查看资料,实行中,看是否有可行性。

2023-04-16 22:17:43 89

原创 汉诺塔的链栈实现

emmm,这个题由老师提示了三个栈和网上汉诺塔思路得来,但其实最开始做的时候,不仅是对汉诺塔思路的不理解,还有对入栈,不知大入什么感到头疼,后来想了一下,就让栈a的元素全是A就行,栈b的元素就是B就行了,c也一样,既然有了汉诺塔思路,以及入栈该入什么,那么代码也就迎刃而解了。

2023-04-16 01:10:23 85

原创 希尔 快排 归并 排序

又称 “缩小增量排序”,它也是一种插入类排序的方法。其实现是通过不断的分组,然后将分组的排序,当分的组只有一组的时候就说明排序已经完成。

2023-04-15 01:34:35 34

原创 Floyd算法及其他

的算法,与Dijkstra算法类似。但是相较于dijkstra算法,此算法的时间复杂度过于大了,为n^3,因此对于数据大的题,就没法使用此方法。Floyd算法是求任意两点之间的距离,是多源最短路,而dijkstra算法是求一个顶点到其他所有顶点的最短路径,是单源最短路。Floyd算法可以算带负权的,而Dijkstra算法是不可以算带负权的。而核心思路就是在俩点之间可能存在其他点使俩点的距离缩短,我们的目的就是找到能够缩短路径的其他点。Floyd算法又称为插点法,是一种利用。

2023-04-14 18:29:59 97

原创 最小生成树和最短路径及其他

用于无向图中,无向图指的是没有带方向路径的图,给定n个点,m条边,如果将这些点依次相连,求出连接这些点的最小数值应用场景根据这个算法特性,我们不能猜出此算法主要运用于要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。这就需要找到带权的最小生成树。最短路径一般用于有相同,就是带有方向的路径图。

2023-04-12 22:36:03 600

原创 关于图的基本知识及复习

由于前面的时候就学过图了,但是现在大多都忘了,所以此篇主要于复习。

2023-04-12 01:15:33 34

原创 今日一题总结

这个题我最开始想的是动态,emmm,不会做,再想的是dfs,emmm,我感觉能行,还是写不出来,然后看了下题解,emmm,贪心?先将整个数组排序,然后合并最小的,合并之后,再排序,再合并,直到还剩一个,emmm,不是当时怎么不想出来。

2023-04-11 01:07:43 32

原创 队列的实现及其他

队列是一种线性结构,根栈也差不了多少,但栈是“先进后出”,而队列是“先进先出”

2023-04-09 22:06:24 36

原创 哈夫曼树的实现及其他

这个题可以用数组来实现栈,用链表的话还过于麻烦了,就是将字符串中的 ' ( ' 依次入栈,当遇见 ' ) ' 时,就将其出栈。

2023-04-09 02:20:45 160

原创 哈夫曼树及其他

在一棵树中,从一个结点到另一个结点所经过的所有结点,被我们称为两个结点之间的路径。例如在这个途中,从a到e的路径就为2,a到h的路径为3;

2023-04-08 03:57:04 447

原创 二叉树的实现以及其他

这个题主要是考验的数学能力,其实最难的一点就是你要知道这个负进制怎么算;那么接下就针对三个案例就行分析;这样是不是更仙显而易见了呢,只不过要注意一下,当余数<0的时候,那么就要将余数+2,然后n+1,这样才能得出正确答案。

2023-04-06 22:29:17 104

原创 树的基本知识及其他

树是一种数据结构,是非线性结构的一种,树的样子一般是长这样一般有:树型表示法 嵌套集合表示法 凹入表示法 广义表表示法有:1.森林:是m(m>=0)棵互不相交的树的集合 注意树一定是森林,森林不一定是树2.结点(node): 树的结点由数据元素及其若干分支组成3.子树:以根结点为根的树为全树(或树),以其他结点作为根结点的树为子数4.结点的度:该结点分支数量5.树的度:树中所有结点的度的最大值6.叶子结点(leaf node):无分支的结点。

2023-04-05 23:14:33 299

原创 学习总结(2.15)

先交换

2023-02-15 23:24:12 104

原创 2.14(学习总结)

spfa 算法

2023-02-14 19:56:09 52

原创 学习总结(2.13)

滚动数组

2023-02-13 21:07:17 63

原创 学习总结(2.12)

学习总结

2023-02-12 22:19:24 77

原创 学习总结(2.10)

合唱队形、摆花

2023-02-10 18:13:12 39

原创 学习总结(2.9)

【模板】最长公共子序列、编辑距离

2023-02-09 22:13:09 36

空空如也

空空如也

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

TA关注的人

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