自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 codeforce ----- Nene‘s Magical Matrix

通过观察对角线上的数(左上到右下),发现每个数的下面和右边都是完美排列(12345)的一部分-->只要能够让对角线上的每个数的下面和右边都满足是完美排列(12345),那么就可以构造出该矩阵-->假设依次操作从左上到右下对角线上的每个数所在的行和列,发现操作下面的数会更新上面已更新过的数,这是不希望出现的-->从右下往左上操作则不会,利用贪心的思想,在满足操作要求的所有矩阵中,最大的数出现的最多,次大的数出现得次多......的矩阵的和最大,那最大的数最多出现多少次呢?矩阵最大和是多少,每次该如何操作。

2024-04-24 15:02:55 172

原创 期末数据结构实训(c++版)——稀疏矩阵的操作

期末数据结构实训(c++版)

2024-01-04 17:27:15 351 2

原创 期末数据结构实训(c++版)——希尔排序

期末数据结构实训(c++版)

2024-01-04 17:15:42 393 1

原创 期末数据结构实训(c++版)——循环队列

期末数据结构实训(c++版)

2024-01-04 16:49:56 380 1

原创 期末数据结构实训(c++版)——哈希查找

期末数据结构实训(c++版)

2024-01-04 16:42:32 364 2

原创 期末数据结构实训(c++版)——图的广度优先搜索

期末数据结构实训(c++版)

2024-01-04 15:33:49 342 1

原创 期末数据结构实训(c++版)——最短路径

期末数据结构实训(c++版)

2024-01-04 15:27:37 326 1

原创 期末数据结构实训(c++版)——二叉排序树的插入删除和查找

期末数据结构实训(c++版)

2024-01-04 12:51:57 619 3

原创 期末数据结构实训(c++版)——二叉排序树的创建与使用

期末数据结构实训(c++版)

2024-01-04 10:33:49 371 1

原创 期末数据结构实训(c++版)——链式二叉树的创建及遍历

期末数据结构实训(c++版)

2024-01-04 10:01:14 438 1

原创 期末数据结构实训(c++版)——哈夫曼编码大全

期末数据结构实训(c++版)

2024-01-03 22:08:12 637 4

原创 期末数据结构实训(c++版)——图的深度优先搜索

期末数据结构实训(c++版)

2024-01-03 19:03:21 492 1

原创 算法提高 —— 深搜中的重难点总结

相比bfs,迭代加深随着深度限制的增加,虽然会重复搜索到搜过的部分,但是却是可以忽略不计的(举个例子,假如搜索数是一颗二叉树的形式,假设答案在第n层,前面的所有节点加起来也才2^n-1,跟第n层所有节点差不多,但是一般题目的搜索树每个节点不可能只有两个子节点,那么重复搜索的部分就更不值一提),而bfs搜的话,可能会出现搜索节点过多导致爆空间。缺点是可能会出现答案在搜索树层数很浅,在靠后的子树中,但由于搜索次序需要遍历完一棵搜索树所有的节点,所以导致效率低下。这样的搜索树很可能会使在bfs的过程中队列爆掉。

2023-10-16 14:51:55 66 2

原创 Acwing 180.排书

被题的难点就是找估价函数,因为每次最多会断开三个相连的位置,所以每次最多会将三个错误的位置修正(每次都要算出改状态的错误位置有几个),假设当前有tot个错误链接,则最少需要tot/3(上取整)次操作,所以估计函数f()=tot/3(上取整)=(tot+2)/3(下取整)。给定一个1~n的随机序列,每次操作可以任选一段序列移出来放到某个位置的后面,如果能在4步操作之内把该序列变成1~n的升序则输出操作步数,否则输出“5 or more”

2023-10-16 14:50:53 47 1

原创 Acwing 171.送礼物

思路:因为此题w的范围为[1,2^31-1],故不能用背包去解,因为1<=m<=46,可以想到用dfs,但一般的dfs肯定会超,所以想到可以用双向dfs,先搜前一半,打个表,把所有的情况都列出来,再搜后一半,当搜到第m个时,再利用二分去表中查找第一个<=(w-当前后一半的重量),记录下最优解。有m个礼物,给定每个礼物的重量,在重量不超过w的情况下,求最大的重量。算法标签:双向dfs。

2023-10-16 13:42:10 47 1

原创 Acwing 170.加成序列

思路:因为涉及到了最短,如果用普通dfs的话,则需要把整颗搜索数都遍历一遍,因为不知道当前解是否最优,当然可以加一些剪枝,但是它的效率还是不如迭代加深,故用迭代加深去解,迭代加深就是给定一个深度限制的dfs,具体看代码注释。题目大意:已知一个序列的开头(一定为1),结尾(输入),序列的中的每一个数都是该数之前的任意两个数相加(可以是同一个数),并且保证序列严格单调递增,求该序列长度最短的解,并输出序列中所有的数(有多组解的话任意输出一组)

2023-10-16 13:10:30 33 1

原创 Acwing 165.小猫爬山

思路:按体重从大到小枚举每只小猫(优化搜索顺序),每只小猫有两种选择,可以选则加入之前的缆车,如果可以加入的话(可行性剪枝),也可以选择自己额外开一辆缆车。当枚举到最后一只的时候,更新一下res,如果搜索过程中,当前缆车数量已经>=res,直接返回(最优性剪枝)我的理解是:如果先搜大的,后面就只能搜小的,如果先搜小的话,后面即可以搜大的也可以搜小的,这样搜分支显然比先搜大的多很多,所以先搜大的能够优化搜索。题目大意:已知一辆缆车的最大承受重量和m只猫的重量,求最少需要多少量缆车。

2023-10-16 11:12:11 66 1

原创 Acwing 1117. 单词接龙

题意:给定m(m<20)个字符串,如果一个字符串是另一个字符串的非平凡后缀,则可以将此字符串连接在另一个字符串的后面,公用重叠的部分,这个新的字符串称之为“龙”,求龙的最长长度,每个字符串可用两次。link[i][j]=len表示第i个字符串与第j个字符串有公共部分,长度为len。其中第一个参数表示当前的“龙”,第二个参数表示上一个字符串的下标。预处理完后,dfs首字母为所给字母的字符串,结果取max。思路:由于m<20,所以很容易想到暴搜。

2023-10-09 23:57:04 35 2

原创 算法题高 —— 宽搜汇总

在广搜中要想保证答案正确,就必须保证队列中元素的具有两端性和单调性(单调递增),如果队列中前面的元素大于后面的元素,则不能保证搜出来的答案最优,一般的广搜权值都是1所以就正常插入队尾就能保证队列的单调性和两端性,当权值有1和0时,如果还一股脑插入队尾,则不能保证队列的单调性,假设a和b为队列中前两个元素,d[a]=d[b]=x;a先出队,搜到的下一个点的权值为1,将x+1插入队尾,在让b出队,假设b搜到的点权值为0,则插入队尾的值为x,x+1>x,所以该队列不是一个单调递增的队列,不能保证答案的正确性。

2023-09-22 14:24:32 48 1

原创 C语言编写一个简单的选择题答题系统

选择题系统

2022-12-11 15:00:30 578 3

空空如也

空空如也

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

TA关注的人

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