自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(237)
  • 资源 (2)
  • 收藏
  • 关注

原创 最长上升子序列模型(二)

输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。雷达给出的高度数据是不大于 30000的正整数,导弹数不超过 1000。第二行包含一个整数,表示要拦截所有导弹最少要配备的系统数。

2024-09-17 23:59:13 411

原创 482. 合唱队形

他们的身高分别为 T1,T2,…,TK,  则他们的身高满足 T1<…你的任务是,已知所有 N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。这道题目的完整版,我们可以根据登山题目的思路,总数减去登山的求解结果,那就是本题目的答案。合唱队形是指这样的一种队形:设 K 位同学从左到右依次编号为 1,2…N同学站成一排,音乐老师要请其中的 (N−K)位同学出列,使得剩下的 K。输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。输入的第一行是一个整数 N,表示同学的总数。

2024-09-17 22:23:27 296

原创 最长上升子序列模型(一)

帮助读者了解和进阶最长上升子序列模型

2024-09-17 20:11:35 680

原创 数字三角形模型

f[i1,j1,i2,j2]表示所有从(1,1)(1,1)分别走到(i1,j1)(i2,j2)的路径的最大值。f[k,i1,i2]表示所有从(1,1)(1,1)分别走到(i1,k-i1)(i2,k-i2)的路径的最大值。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。设有 N×N 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。接下来的每行有三个整数,第一个为行号数,第二个为列号数,第三个为在该行、该列上所放的数。

2024-09-17 18:03:19 825

原创 RMQ之1273. 天才的记忆

,在你看过一遍之后,它便消失在你面前,随后问题就出现了,给你 M个询问,每次询问就给你两个数字 A,B,要求你瞬间就说出属于 A到 B这段区间内的最大数。一天,一位美丽的姐姐从天上飞过,看到这个问题,感到很有意思(主要是据说那个宝藏里面藏着一种美容水,喝了可以让这美丽的姐姐更加迷人),于是她就竭尽全力想解决这个问题。表示的是从i开始长度是2^j 的区间最大值是多少,f[i,j]=max(f[i,j-1],f[i+2^i-1,j-1])。输出共 M行,每行输出一个数,表示对一个问题的回答。

2024-09-17 13:35:31 256

原创 107. 超快速排序

对于每个需要处理的输入序列,输出一个整数 op,代表对给定输入序列进行排序所需的最小交换操作数,每个整数占一行。该算法通过交换两个相邻的序列元素来处理 n 个不同整数的序列,直到序列按升序排序。您的任务是确定超快速排序需要执行多少交换操作才能对给定的输入序列进行排序。接下来 n行每行输入一个整数 ai,代表用例中输入序列的具体数据,第 i。当输入用例中包含的输入序列长度为 0时,输入终止,该序列无需处理。每个测试用例的第一行输入整数 n,代表该用例中输入序列的长度。行的数据代表序列中第 i个数。

2024-09-17 13:06:31 213

原创 106. 动态中位数

对于每个数据集,第一行输出两个整数,分别代表数据集的编号以及输出中位数的个数(应为数据个数加一的二分之一),数据之间用空格隔开。数据集的剩余行由数据集的数据构成,每行包含 10个数据,最后一行数据量可能少于 10个,数据之间用空格隔开。数据集的剩余行由输出的中位数构成,每行包含 10个数据,最后一行数据量可能少于 10个,数据之间用空格隔开。依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数。第一行输入一个整数 P,代表后面数据集的个数,接下来若干行输入各个数据集。

2024-09-17 09:44:24 241

原创 105. 七夕祭

Vani 预先联系了七夕祭的负责人 zhq,希望能够通过恰当地布置会场,使得各行中 cl 感兴趣的摊点数一样多,并且各列中 cl 感兴趣的摊点数也一样多。不过 zhq 告诉 Vani,摊点已经随意布置完毕了,如果想满足 cl 的要求,唯一的调整方式就是交换两个相邻的摊点。虽然摊点种类繁多,不过 cl 只对其中的一部分摊点感兴趣,比如章鱼烧、苹果糖、棉花糖、射的屋……接下来 T行,每行两个整数 x,y,表示 cl 对处在第 x行第 y列的摊点感兴趣。如果能满足 Vani 的全部两个要求,输出 both;

2024-09-17 09:14:51 273

原创 HJ11 数字颠倒

程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001。输入一个整数,将这个整数以字符串的形式逆序输出。将这个整数以字符串的形式逆序输出。

2024-09-16 22:36:10 218

原创 背包问题(二)

接下来有 N行,每行三个整数 vi,mi,wi,用空格隔开,分别表示第 i 件物品的体积、重量和价值。第一行三个整数,N,V,M,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。如果潜水员需要5升的氧和60升的氮则总重最小为249(1,2或者4,5号气缸)。仅一行包含一个整数,为潜水员完成工作所需的气缸的重量总和的最低值。有 N件物品和一个容量是 V的背包,背包能承受的最大重量是 M。你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。潜水员为了完成他的工作需要特定数量的氧和氮。

2024-09-16 00:24:07 903

原创 HJ24 合唱队

从左往右和从右往左,分别有两个降序的序列,左右两端求和就是当前位置的一个集合的值,这个值尽可能的大,才能使得出队的人数尽可能的少。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。通俗来说,能找到一个同学,他的两边的同学身高都依次严格降低的队形就是合唱队形。用例两行数据,第一行是同学的总数 N ,第二行是 N 位同学的身高,以空格隔开。,K ,他们的身高分别为。

2024-09-15 19:10:18 255

原创 847. 图中点的层次

请你求出 1号点到 n号点的最短距离,如果从 1号点无法走到 n号点,输出 −1。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环。接下来 m行,每行包含两个整数 a和 b,表示存在一条从 a。输出一个整数,表示 1号点到 n号点的最短距离。所有边的长度都是 1,点的编号为 1∼n。第一行包含两个整数 n和 m。走到 b的长度为 1的边。

2024-09-15 17:35:58 172

原创 846. 树的重心

846. 树的重心给定一颗树,树中包含 n个结点(编号 1∼n)和 n−1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数 n,表示树的结点数。接下来 n−1行,每行包含两个整数 a和 b,表示点 a和点 b之间存在一条边。输出格式输出一个整数 m,表示将重心删除后,剩余各个连通块中点数的最大值。数据范围1≤n≤105输

2024-09-15 11:22:31 382

原创 143. 最大异或对

在给定的 N个整数 A1,A2……AN中选出两个进行 xor(异或)运算,得到的结果最大是多少。第二行输入 N个整数 A1~AN。第一行输入一个整数 N。输出一个整数表示答案。

2024-09-15 10:29:44 258

原创 HJ10 字符个数统计

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3。输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。输入一行没有空格的字符串。

2024-09-15 00:18:41 246

原创 HJ9 提取不重复的整数

输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是 0。输入一个int型整数。

2024-09-15 00:07:00 221

原创 HJ8 合并表记录

map存储键对,一定是索引排序的,如果另外开数组存储索引值如果数组开的太小会发生段错误,用map直接存储就可以了。注意一下题目的描述也就没啥了,单纯记录一下被unordered_map和开了个110长度的数组发生了段错误,就这样,无了。接下来n行每行输入成对的index和value值,以空格隔开。先输入键值对的个数n(1 <= n <= 500)输出合并后的键值对(多行)

2024-09-14 23:34:03 203

原创 背包问题(一)

对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。现在已知小智的精灵球数量和皮卡丘的初始体力,已知每一个小精灵需要的用于收服的精灵球数目和它在被收服过程中会对皮卡丘造成的伤害数目。之后的K行,每一行代表一个野生小精灵,包括两个整数:收服该小精灵需要的精灵球的数量,以及收服过程中对皮卡丘造成的伤害。输入数据的第一行包含三个整数:N,M,K,分别代表小智的精灵球数量、皮卡丘初始的体力值、野生小精灵的数量。

2024-09-14 22:27:54 1173

原创 DFS之剪枝与优化

如果放到最后一个失败,则也一定失败。数独 是一种传统益智游戏,你需要把一个 9×9的数独补充完整,使得数独中每行、每列、每个 3×3的九宫格内数字 1∼9均恰好出现一次。位运算优化:行,列,九宫格,都可以用9个二进制数表示(1表示可放,0表示不能放),只有三者取&后,如果仍为1,才能放进去.7月 17日是 Mr.W 的生日,ACM-THU 为此要制作一个体积为 Nπ的 M层生日蛋糕,每层都是一个圆柱体。每个测试用例占一行,包含 81个字符,代表数独的 81个格内数据(顺序总体由上到下,同行由左到右)。

2024-09-14 15:34:47 983

原创 DFS之搜索顺序

请编写一段程序,给定 n∗m大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。表示单词数,以下 n行每行有一个单词(只含有大写或小写字母,长度不超过20),输入的最后一行为一个单个字符,表示“龙”开头的字母。现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”,每个单词最多被使用两次。每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,若无法遍历棋盘上的所有点则输出 0。一个正整数,即最少需要的组数。

2024-09-14 12:38:08 413

原创 DFS之连通性模型

另一种是从一个状态变成另一个状态,这种不是自身的,是需要进行恢复现场,看是不是能有下一个到达的状态。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。每组测试数据的第1行是一个正整数 n,表示迷宫的规模是 n∗n的。

2024-09-14 10:13:38 365

原创 HJ7 取近似值

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。数据范围:保证输入的数字在 32 位浮点数范围内。0.5>=0.5,所以5.5需要向上取整为6。0.499<0.5,2.499向下取整为2。输出该数值的近似整数值。

2024-09-14 08:30:48 195

原创 HJ6 质数因子

功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )按照从小到大的顺序输出它的所有质数的因子,以空格隔开。

2024-09-14 08:22:32 126

原创 HJ5 进制转换

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输出该数值的十进制字符串。不同组的测试用例用\n隔开。输入一个十六进制的数值字符串。数据范围:保证结果在。

2024-09-13 18:52:44 237

原创 Dijkstra求最短路

本题目其实是对于dijkstra的堆优化版本,因为我们在朴素的版本中比遍历了所有的边,但其实多了很多与t不相关的点,那么我们优先队列存储t,访问其有关的边即可,时间复杂度为mlogn,适用于稀疏图,稠密图还是尽量用朴素版本的。接下来 m行每行包含三个整数 x,y,z,表示存在一条从点 x到点 y的有向边,边长为 z。请你求出 1号点到 n号点的最短距离,如果无法从 1号点走到 n号点,则输出 −1。请你求出 1号点到 n号点的最短距离,如果无法从 1号点走到 n号点,则输出 −1。

2024-09-13 10:40:52 612

原创 A*算法.

八数码,第K短路

2024-09-12 19:08:12 612

原创 双向广搜之字串变换

长度为20,每个点都有可能扩展6个,因此有120个,并且最长10步,因此最长的时间可能是120^10,因此必须采用双向广搜,一般应用于最小步数模型里面(这个里面的搜索状态可能会很大,因此采用,也就是优化)。只是扩展了一个节点,并不是扩展了一层节点,其次,A==B就不需要规则变动,直接return 0,因此需要修改,具体见代码二。步)以内能将 A变换为 B,则输出最少的变换步数;规则的含义为:在 A 中的子串 A1可以变换为 B1、A2可以变换为 B2…共进行了三次变换,使得 A变换为 B。

2024-09-12 17:16:22 295

原创 HJ4 字符串分隔

切记substr的第二个参数是字符串的长度切割的!•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。连续输入字符串(每个字符串长度小于等于100)依次输出所有分割后的长度为8的新字符串。按照题意说的那样照做就行,

2024-09-12 10:48:01 281

原创 HJ3 明明的随机数

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。第一行先输入随机整数的个数 N。接下来的 N 行每行输入一个整数,代表明明生成的随机数。具体格式可以参考下面的"示例"。1≤n≤1000 ,输入的数字大小满足 1≤val≤500。输出多行,表示输入数据处理后的结果。

2024-09-12 10:08:54 164

原创 HJ2 计算某字符出现次数

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。hash表存储形成对应关系即可,输出对应字符的出现次数即可。输出输入字符串中含有该字符的个数。(不区分大小写字母)

2024-09-12 08:23:59 226

原创 HJ1 字符串最后一个单词的长度

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)直接用while循环cin字符串,结束循环输入的上一次输入的大小直接就是所求的单词的长度。输入一行,代表要计算的字符串,非空,长度小于5000。输出一个整数,表示输入字符串最后一个单词的长度。最后一个单词为nowcoder,长度为8。

2024-09-12 07:50:30 190

原创 双端队列广搜之电路维修

达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。之后 R行,每行 C个字符,字符是"/“和”"中的一个,表示标准件的方向。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。对于每组测试数据,第一行包含正整数 R和 C,表示电路板的行数和列数。对于每组测试数据,在单独的一行输出一个正整数,表示所需的最小旋转次数。电路板左上角的接点接入直流电源,右下角的接点接入飞行车的发动装置。每个格点都是电线的接点,每个格子都包含一个电子元件。

2024-09-11 20:15:32 351

原创 最小步数模型之魔板

可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。你要编程计算用最少的基本操作完成基本状态到特殊状态的转换,输出基本操作序列。Rubik 先生在发明了风靡全球的魔方之后,又发明了它的二维版本——魔板。对于上图的魔板状态,我们用序列 (1,2,3,4,5,6,7,8)如果操作序列的长度大于0,则在第二行输出字典序最小的操作序列。输出文件的第一行包括一个整数,表示最短操作序列的长度。输入数据中的所有数字均为 1到 8 之间的整数。来表示,这是基本状态。

2024-09-11 17:59:34 321

原创 多源BFS之矩阵距离

给定一个 N行 M列的 01矩阵 A,A[i][j]与 A[k][l]之间的曼哈顿距离定义为dist(i,j,k,l)=|i−k|+|j−l|输出一个 N行 M列的整数矩阵 B,其中: B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(i,j,x,y)一个 N行 M列的矩阵 B,相邻两个整数之间用一个空格隔开。全部位置为1的地方设置成dist=0,全部入队依次扩展。接下来一个 N行 M列的 01矩阵,数字之间没有空格。第一行两个整数 N,M。

2024-09-11 15:49:04 531

原创 最短路模型

这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了 The Knight 的开始位置,树、灌木、石头以及其它障碍的位置,除此之外还有一捆草。它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。按顺序,每行输出一个路径中经过的单元格的坐标,左上角坐标为 (0,0),右下角坐标为 (n−1,n−1)。记录最短路模型的路径,从终点逆向推导,那么记录的就是从起点开始的路径,bfs一定记录的是最短的路径。

2024-09-11 12:24:44 913

原创 Flood Fill算法之山峰和山谷

若两个格子有公共顶点,那么它们就是相邻的格子,如与 (i,j)相邻的格子有(i−1,j−1),(i−1,j),(i−1,j+1),(i,j−1),(i,j+1),(i+1,j−1),(i+1,j),(i+1,j+1)。给定一个地图,为FGD想要旅行的区域,地图被分为 n×n的网格,每个格子 (i,j)的高度 w(i,j)是给定的。你的任务是,对于给定的地图,求出山峰和山谷的数量,如果所有格子都有相同的高度,那么整个地图即是山峰,又是山谷。接下来一个 n×n 的矩阵,表示地图上每个格子的高度 w。

2024-09-11 10:18:50 364

原创 Flood Fill算法

可以在线性时间复杂度内,找到某个点所在的联通块。农夫约翰有一片 N∗M的矩形土地。最近,由于降雨的原因,部分土地被水淹没了。现在用一个字符矩阵来表示他的土地。每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。现在,约翰想知道他的土地中形成了多少片池塘。每组相连的积水单元格集合可以看作是一片池塘。每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。请你输出共有多少片池塘,即矩阵中共有多少片相连的”W”块。输入格式。

2024-09-11 09:34:35 956

原创 322. 零钱兑换

计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。给你一个整数数组 coins ,表示不同面额的硬币;输入:coins = [1, 2, 5], amount = 11。,改改具体的细节就能解决本题了,下面是代码,参考一下就可以。输入:coins = [2], amount = 3。输入:coins = [1], amount = 0。你可以认为每种硬币的数量是无限的。解释:11 = 5 + 5 + 1。本题就是完全背包的变形,可以参考。

2024-09-08 20:38:15 540

原创 139. 单词拆分

dp[i]表示字符串s的前i个字符组成的子串s[0..i-1]是否能被空格拆分成若干个字典中出现的单词。通过动态规划,我们可以逐步计算出dp[i]的值,最终判断整个字符串s是否能被拆分成字典中的单词。代码部分public:public :++ i) {j < i;} };();

2024-09-08 20:21:14 313

原创 198. 打家劫舍

②状态计算:我们考虑i,i个房子有偷或者不偷两种方案,如果偷了i的房子,那么金额就是f[i-2]+nums[i];解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。①状态表示:1.集合f[i]表示的是到达i个房子时,所偷取的最大金额。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。

2024-09-07 11:52:10 297

数据库系统原理课程设计文档

邮局订阅管理系统的文档编写部分

2021-12-06

学霸直男主题错题本.pdf

学霸直男主题错题本.pdf

2021-12-05

空空如也

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

TA关注的人

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