自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每日一题(级数求和)

这道题的思路是枚举每一个分母n,然后用sum存储它们相加的和,一旦判断满足条件,那么就输出当前的n。值得注意的是要用1.0/i,否则1/i的结果会向下取整,结果会出现错误。

2023-03-31 19:35:32 125

原创 每日一题(最大公约数和最小公倍数问题)

所以我们可以只进行一次循环,通过枚举x的值和这个式子求出另一个y,y=a*b/x;然后再通过相应判断来增加答案。所以我们可以让x枚举到sqrt(a*b),一开始时xy,我们的计算就会重复。于是我只好优化一下代码,我们其实不需要枚举每一个数的组合,对于不同的x,y交换它们的值一定可以等于另一个答案,因此我们只需要循环一次即可。值得注意的是,如果x,y的值相同,那么交换它们并不会得到另一个答案,所以当a和b相同时,ans要-1;

2023-03-30 20:45:49 114

原创 每日一题(剪绳子)

如果不满足条件的话就r=mid(说明切的段数少于所需段数,最小值的最大值太大了,那么就缩小边界)2.单调性(我们切的段数越多,那么这个答案就越小,所以单调递减,满足单调性)那么我们就从0到最大绳长之间用二分法寻找答案,并依次进行check判断。1.有界性(这道题的答案一定在最小绳长和最大绳长之间,满足有界性)如果满足条件的话l就=mid(此时的r是最小的满足条件的暂定答案)这道题是找最小值的最大化问题,那么就用二分答案。就这样一步步循环,最终找到最小值的最大化。

2023-03-30 16:58:37 86

原创 每日一题(棋盘方格)

这道题的思路是将这个棋盘上的每一个小方块看成是一个坐标,通过遍历所有初始方块和末方块得到一个个的图形。那么将它的末坐标和它的初始坐标相减之后得到这个图形的长和宽。经过判断长和宽是否相等后得到正方形的长方形的个数。

2023-03-29 20:58:23 113

原创 每日一题(比赛安排)

这道题主要的思路就是将所有队伍双方的组合全部遍历一遍,用数组存储遍历过的组合,要是没有遍历过再进行输出。第二个和第三个for循环遍历的是该天打比赛的前面一个队伍和后面一个队伍。第一个for循环控制的是输出天数,一共输出pow(2,n)-1天。这里用到了三个for循环,进行输出。

2023-03-29 19:33:28 39

原创 每日一题(回文平方)

这道题的思路是先枚举从1到300中所有数字的平方,将他们转换为B进制后将每一位存入分别数组中,然后让头和尾比对是否相同,如果全部都相同的话那么就符合题意,输出。3.如果B大于10,那么余数可能也会出现大于10的情况,那么就要注意输出的数要转换成A、B、C等对应形式。(我这里写了一个判断,如果出现该种情况的话就将该余数-10,然后对应到我写的翻译数组的下标中输出)4.如果这个数的平方进制转换后只有一位数,那么它一定是个回文数,无需额外判断,直接输出即可。注意倒着的余数才是其进制转换后的答案。

2023-03-24 19:25:44 26

原创 每日一题(蛇形矩阵)

分别是向右走b坐标碰到边界、向下走a坐标碰到边界、向左走b坐标走到1的时候。值得注意的是b的初始值是0,如果是1的话就会执行向右走的操作变成2。这道题的难点主要在于蛇形输入数字到这个矩阵中。碰到边界需要转向的只有一开始的三次转向。后面转向的原因都是因为碰到数字。那么1,1的点就覆盖不到。

2023-03-23 19:36:28 30

原创 每日一题(数字三角形/动态规划)

看到这道题我一开始的思路是利用dfs深搜来做,但是我学的太烂了,写不出来搜索完一条路径后该怎么返回。于是就用动态规划来做。

2023-03-23 17:03:26 38

原创 每日一题(仓库选址)

一开始的思路是将货仓的位置取在所有仓库的平均数的位置,但是并不对,应该把位置设置在最中间的商店的位置,这样就可以少走一家商店。我就只能换了一种写法,上面的为什么没有ac至今还是个未解之谜。所以ans(距离和) = 4 + 1 + 3 = 8;于是我写了下面的代码,无奈最后一个测试点怎么也过不了。如果用取平均位置的方法那么货仓位置应该是5。如果用另外一种方法那么货仓的位置应该是6。所以ans = 5 + 2 = 7;如果是奇数的话,中间值必须取N/2+1。如果是偶数的话,中间值取哪一个都可以。

2023-03-22 19:57:11 194

原创 每日一题(拼写正确)

如果接着再根据str2中的位置和a中数组中的位置是对应的依次转化成英文。再将每一个数字相加起来得到要输出的数字ans(注意数据类型的转化)接着将这个答案ans每一个数字都分开存储进数组a中。这道题的整体思路是先用str存储输入的数据。

2023-03-17 22:45:16 80

原创 动态规划(四)

【代码】动态规划(四)

2023-02-23 07:19:53 35

原创 动态规划(三)

【代码】动态规划(三)

2023-02-23 06:42:27 40

原创 动态规划(二)

这道题使用二维dp显然超时超空间,考虑优化dp使用一维。

2023-02-23 05:18:18 27

原创 动态规划(一)

【代码】动态规划题解(一)

2023-02-23 04:21:56 36

原创 基础算法(四)

其实也很简单,区间 [l , r] 的前缀和为 a[l] + ... + a[r] 等价于 s[r] - s[l - 1]。前缀和数组我们用s表示,那么 s[1] 的计算就能看成是 s[0] + a[1] ,即起始下标到当前下标的区间前缀和为 s[i - 1] + a[i]。比如我们要求区间3-5的前缀和,那么其实相当于1-5这个区间的前缀和减去1-2这个区间的前缀和。差分的思想是前缀和思想的逆运算,通过构造一个新的数组,使原来的数组的每一个元素是新数组的前缀和。保证离散化后的数据非负且尽可能的小。

2023-02-13 20:37:30 34

原创 基础算法(三)STL

提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。有限的步聚,解决逻辑或数学上的问题,这一门学科我们叫做算法(Algorithms)质变算法:是指运算过程中会更改区间内的元素的内容。算法:各种常用的算法,如sort、find、copy、for_each等。常用的数据结构:数组,链表,树,栈,队列,集合,映射表等。:理调值的排序,序列式容器中的每个元素均有固定的位置。

2023-02-12 21:25:49 478

原创 基础算法(二)

归并排序是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。分解:将n个元素分成个含n/2个元素的子序列。合并:合并两个已排序的子序列已得到排序结果。解决:用合并排序法对两个子序列递归的排序。• 如果中间值太小,则继续处理右区间。• 如果中间值太大,则继续处理左区间。例题P2249 【深基13.例1】查找。• 在指定的区间,尝试中间值。

2023-02-08 02:06:06 28

原创 基础算法(一)

排序是数据处理中经常使用的一种重要运算,它是将一组无序的数据元素按其关键字的某种次序排列成有规律的序列,排序的目的之一就是方便数据的查找,排序分为内排序和外排序。在此场景下,第k + 1小的元素将不会右移,而是被直接丢弃。思路:n次大循环,第i次大循环中,用小循环寻找数列中第i小的元素。之后再用O(n+m)的时间构造出结果数列,总时间O(n + m)。第i次大循环将第i个元素向前交换,直至左侧元素不大于它,或抵达数列首部。后i个元素有序,且为最大的i个元素。前i个元素有序,且为最小的i个元素。

2023-02-08 01:41:57 31

原创 数据结构复习总结

将每个节点的孩子结点构成一个单链表,称为孩子链表n个节点的数有n个,这样的孩子链表为了方便起见,我们将每个节点存放在一个顺序表中,顺序表的每个元素有两个域,一个是存放该节点的数据值,另一个是存放该节点的第一个孩子的地址,孩子节点也有两个域,一个域是存放该孩子节点在顺序表中的位置(数组下标),另一个域是存放下一个孩子的地址。在双亲表示法中,因为每个节点中都有其双亲的数组下标,所以在查找每个节点的双亲和祖先是非常容易的,但找孩子节点或兄弟节点就非常麻烦了。深度为k的二叉树中至多有2ⁿ-1个结点。

2023-02-05 21:26:32 126

原创 数据结构基础(三)

也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。集合在 STL 中有两种,分别是 有序集合 和 无序集合,分别需要的头文件为 < unordered_set > 和 < set >,二者功能上类似,但有序集可找前驱后继。映射在 STL 中也有两种,分别是 有序映射 和 无序映射,分别需要的头文件 为< unordered_map > 需头文件 < map >在执行合并操作时,将更小的树连接到更大的树上,这样的优化方式就称为“按秩合并”

2023-02-05 21:01:25 62

原创 数据结构基础(二)

一个节点会包含它的存储数据(data),以及一或两个用来指向上一个/下一个节点的位置的链接(links)。链表是一种类似于铁链状的数据结构,锁链的每一节可以者成是链表的一个元素。类似于锁链,链表的每一节可以打开,能够快速做到一些用数组存储数据时较麻烦的操作,比。但链表在访问特定编号节点的时候,需要按链上顺序逐个查找,不如数组来的直接。链表上的数据存储单元,一般称为节点(Node),类似于数组中的一个位置。如在中间插入或删除数据,取下一段数据,对一段数据进行翻转等操作。记录它之前、之后是哪一节。

2023-02-04 21:18:31 39

原创 数据结构基础(一)

断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。队列顾名思义,使用队列存储数据,保证“先进先出”,队列插入操作称为入队,队列删除操作称为出队,允许插入的一端称为队尾,允许删除的一端称为队头,不含任何数据元素的队列叫空队。线性表是线性结构中最常用而又最简单的一种数据结构,线性表是线性结构的抽象,线性结构的特点是一对一的线性关系。树的度:在各个结点当中,度的最大值。

2023-02-04 18:43:31 89

原创 # 时空复杂度及其例题

时空复杂度分为时间复杂度和空间复杂度。

2022-12-25 03:00:09 122 1

空空如也

空空如也

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

TA关注的人

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