- 博客(36)
- 收藏
- 关注
原创 洛谷刷题--P1029 最大公约数和最小公倍数问题
已知最大公约数为x0,最小公倍数为y0.那么对于任意的满足条件的 P,Q 有 P*Q = x0 * y0。对于 100%100% 的数据,2≤�0,�0≤1052≤x0,y0≤105。要求 �,�P,Q 以 �0x0 为最大公约数,以 �0y0 为最小公倍数。一行一个数,表示求出满足条件的 �,�P,Q 的个数。试求:满足条件的所有可能的 �,�P,Q 的个数。一行两个正整数 �0,�0x0,y0。NOIP 2001 普及组第二题。�,�P,Q 是正整数。
2023-10-25 23:55:31
358
2
原创 洛谷刷题--P1028 数的计算
而sum(n) = f(1) + f(2) + ... + f(n)所以对于f(n) 是在从 f(1) ~ f(n/2) 前插入了一个n,故f (1) ~ f(n/2) 都对f(n)有贡献,而加一则是加上本身。得 f(n-1) = f(1)+f(2)+ ...... +f( (n-1) / 2 ) + 1;有状态方程:f(n) = f(1)+f(2)+ ...... +f(n/2) + 1;不难发现 f(n) = f(1)+f(2)+ ...... +f(n/2) + 1;此题,我会给出多种解法。
2023-10-25 18:57:23
557
原创 洛谷刷题--P1003 铺地毯
接下来的 �n 行中,第 �+1i+1 行表示编号 �i 的地毯的信息,包含四个整数 �,�,�,�a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标 (�,�)(a,b) 以及地毯在 �x 轴和 �y 轴方向的长度。对于 100%100% 的数据,有 0≤�≤1040≤n≤104, 0≤�,�,�,�≤1050≤a,b,g,k≤105。第 �+2n+2 行包含两个整数 �x 和 �y,表示所求的地面的点的坐标 (�,�)(x,y)。对于 30%30% 的数据,有 �≤2n≤2。
2023-10-24 17:09:33
149
原创 洛谷刷题记录--P1002 [NOIP2002 普及组] 过河卒
同时在棋盘上 �C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。使用bool类型的数组map记录马的所有落脚点,并且在状态转移方程处进行判断:如果map[i][j]==true(表示该点可能成为马的落脚点),则修改dp[i][j] = 0;现在要求你计算出卒从 �A 点能够到达 �B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。棋盘用坐标表示,�A 点 (0,0)(0,0)、�B 点 (�,�)(n,m),同样马的位置坐标是需要给出的。
2023-10-24 17:02:51
188
原创 力扣209. 长度最小的子数组--滑动窗口
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。条件移动起始位置,循环移动终止位置。无疑终止位的遍历肯定是O(N),而起始位的移动是在终止位移动至满足条件处后再移动并且最多移动到终止位上。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]解释:子数组 [4,3] 是该条件下的长度最小的子数组。
2023-07-03 18:41:01
71
原创 06-图1 邻接矩阵存储图的深度优先遍历
其中MGraphint Nv;/* 顶点数 */int Ne;/* 边数 *//* 邻接矩阵 *//* 以邻接矩阵存储的图类型 */函数DFS应从第V个顶点出发递归地深度优先遍历图Graph,遍历时用裁判定义的函数Visit访问每个顶点。当访问邻接点时,要求按序号递增的顺序。题目保证V是图中的合法顶点。
2023-05-31 08:24:42
77
原创 05-哈夫曼编码 哈夫曼编码
给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长。然而哈夫曼编码并不是唯一的。例如对字符串"aaaxuaxz",容易得到字母 'a'、'x'、'u'、'z' 的出现频率对应为 4、2、1、1。我们可以设计编码 {'a'=0, 'x'=10, 'u'=110, 'z'=111},也可以用另一套 {'a'=1, 'x'=01, 'u'=001, 'z'=000},还可以用 {'a'=0, 'x'=11, 'u'=100, 'z'=101},
2023-05-31 08:17:36
1652
原创 L2-002 链表去重
给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。
2023-05-14 23:38:43
73
原创 L2-001 紧急救援
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。
2023-05-13 23:11:06
82
原创 二叉搜索树1 是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。
2023-05-13 19:46:42
551
1
原创 散列 线性探测法的查找函数
其中HashTable#define MAXTABLESIZE 100000 /* 允许开辟的最大散列表长度 *//* 关键词类型用整型 *//* 散列地址类型 *//* 数据所在位置与散列地址是同一类型 *//* 散列单元状态类型,分别对应:有合法元素、空单元、有已删除元素 *//* 散列表单元类型 *//* 存放元素 *//* 单元状态 *//* 散列表类型 */struct TblNode { /* 散列表结点定义 *//* 表的最大长度 */
2023-05-12 21:29:22
271
原创 约瑟夫环问题
那么我们的f(49,3)=(f(50,3)-3)%49,取余的原因是f(50,3)-3可能出现负数,我们要化负数为正数。约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。n个人(编号0~n-1),从1开始报数,报到m-1的退出,剩下的人继续从0开始报数。f(N−1,M)表示,N-1个人报数,每报到M时那个人出局,最终胜利者的编号。∴得f(n-1,m)=(f(n,m)-m)%(n-1)
2023-05-12 11:18:00
120
原创 List Leaves
1.创建二叉树,利用结构体数组创建二叉树(静态链表),同我上一篇优快云文章,不过结构体中有一个参数有所不同,本题是左孩子索引,右孩子索引,与。2.树的层序遍历:由题目要求从上至下,从左至右不难想到树的层序遍历。(因为此题要求层序打印叶子索引)。层序遍历方法:队列法。
2023-05-11 20:41:48
67
原创 树的同构
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。
2023-05-11 14:51:32
225
原创 最大子列和问题
给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。
2023-05-09 17:43:31
57
原创 列车调度(数据结构)
火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?
2023-04-13 22:59:51
3749
1
原创 初识群智能算法
自然界有许多令人惊奇的现象,如蚂蚁搬家,鸟群觅食等。受自然界和生物界规律的启迪,人们根据其原理设计了许多求解问题的算法。于 1992 年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。粒子群算法 (particle swarm optimization,PSO) 由。在 1995 年提出,该算法模拟鸟群觅食的方法进行寻找最优解。1.群智能算法,2.遗传算法,3.粒子群算法,4.蚁群算法。蚁群算法是一种用来寻找优化路径的概率型算法。遗传算法的概念是在 1975 年由密切根大学的。
2023-04-03 21:34:09
1339
原创 遗传算法 - 函数最优解计算
已经转换成十进制但是需要归一化到 0~5 ,如有 1111 这么长的 DNA,要产生的十进制数范围是 [0, 15] ,而所需范围是 [-1, 1] ,就将 [0,15] 缩放到 [-1,1] 这个范围。[1,2,3],[2,3,4],[3,2,1]均为这个函数的可行解,这些可行解在遗传算法中均被称为染色体,每一个元素就被称为染色体上的一个基因。由公式可以看出,适应度越高,则遗传下来的概率就越大,好比赌轮盘,轮盘上所占面积越大,则被小球滚到的概率就越大。如上图为父辈染色体进过交叉后产生新的染色体的过程。
2023-04-03 21:33:17
2307
原创 默认字典 (defaultdict)
时,默认字典会提供一个默认值,而不是引发异常。#####创建默认字典 默认字典的构造函数接受一个。如果不提供工厂函数,那么默认值的功能就失效了,此时默认字典与普通。,如果使用类型名作为工厂函数,则这个类型必须要有。根据右边编辑器中各个函数中的提示,将函数。这个函数会在要生成默认值的时候。第三行是字符串的默认值:空字符串。本关任务:创建不同类型的默认字典。基本相同,但在访问一个不存在的。个函数会被依次调用,并产生。开始你的任务吧,祝你成功!看做是一个工厂函数,比如。作为参数,可以将一个。
2023-04-03 21:30:11
200
原创 有序字典 (OrderedDict)
函数,它返回对一个可迭代对象排序后的结果,如果可迭代对象的元素不能直接进行比较(比如元素是一个。基本上是相似的,只有一点不同,那就是有序字典中键值对的顺序会保留。排序后,放入一个有序字典,最后输出这个有序字典。个键值对,将其排序后放入有序字典并输出。有序字典 (OrderedDict)区间补充代码,实现函数功能:读取。有序字典的创建方法和普通的。的第一个元素和第二个元素。行输入,以每一行的数据为。对键值对,然后将他们按照。本关任务:读取数据创建。根据提示,在右侧编辑器。
2023-04-03 21:26:03
249
原创 双向队列 (deque)
双向队列是一种能在队列两端都进行入队、出队操作的数据结构,比普通的队列更加灵活也更加复杂。第一行语句创建一个空队列,下面四行语句创建了含有元素。区间代码,完成函数功能,函数读取输入的一个数字。这两个成员函数,他们的作用分别是向队列的。可以注意到,上下两个结果的值的顺序是。的队列,“震荡”的定义见测试说明。怎么样,看出其中的规律了吗?开始你的任务吧,祝你成功!本关任务:编写一个能输出。双向队列 (deque)根据提示,补充右侧编辑器。创建时,使用的是它的键。
2023-04-03 21:25:24
188
原创 计数器(Count)
注意:如果有多个元素的值相同,那么它们之间的顺序是不可确定的,不要在它们的顺序上作任何假设。函数接受一个可迭代对象,然后将这个对象中各种值出现的次数。时,它并不会自动从计数器中删除,如果要删除元素,可以使用。计数器是一个无序容器,用于记录各种值出现的次数。不同的是,当访问计数器中不存在的元素的时候,不会产生。本关任务:编写一个对输入的字符串,进行计数的程序。从上面的例子可以发现,当计数器中一个元素的值减少到。要改变计数器中某一元素的值,除了可以使用操作。开始的,最后输出计数器中的所有元素。
2023-04-03 20:59:41
1101
原创 PTA 月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。
2023-03-31 11:46:39
117
原创 xtu oj 数位不同的数(dfs)
数位不同的数是指所有数位上的数码都不一样的数,比如“123”三个数码1,2,3,都不一样,所以是数位不同的数;但是“1232”中有两个相同的数码2,所以不是。请写一个程序,计算第几个符合条件的数是什么?
2023-03-29 22:55:12
146
原创 xtu oj 1270 数位不同的数(dfs)
数位不同的数题目描述数位不同的数是指所有数位上的数码都不一样的数,比如“123”三个数码1,2,3,都不一样,所以是数位不同的数;但是“1232”中有两个相同的数码2,所以不是。请写一个程序,计算第几个符合条件的数是什么?输入每行输入一个整数n(1≤n≤8877691)。输出每行输出一个整数,为对应样例的结果。样例输入1101008877691样例输出091209876543210思路:利用深搜找出从1位数到10位数所有的结果并将其存入数组
2023-03-29 22:43:19
285
原创 XTU OJ 1449 网格
比如,一个格子,左、上、右、下的火柴棍的状态依次1,0,1,1。样例的第二行是一个长度为2mn+m+n的01串,依次表示各编号火柴棍的状态。我们取一个格子的火柴棍,所以每个格子有4根火柴棍,我们可以用一个16进制数来表示这个格子火柴棍的状态。每个样例输出一个n×m的矩阵,矩阵元素为格子的状态数,用大写的A∼F表示16进制的10∼15。由火柴棍组成的n×m的网格,从上倒下,从左到右,火柴棍编号从1 到 2mn+m+n。现在已知网格的行列和所有火柴棍的状态,请按行列输出每个格子的状态。火柴棍的状态为1或者0。
2023-03-29 19:47:51
317
原创 冰墩墩和玩偶
你有2n个冰墩墩玩偶,这些冰墩墩可能是不同种类的。你将其摆成一行,然后将其从中间对半分成两个长度相同的两行,不断重复这个过程,直到所有行都只剩下一个冰墩墩。以后每行一个冰墩墩排列,长度为2n , 0≤n≤10,我们使用小写英文字母来表示不同种类的冰墩墩。现在给你最初的冰墩墩排列,请问这个过程中一共产生了多少种不同的冰墩墩排列?第一行是一个整数T(1≤T≤1000),表示样例的个数。在这个过程中,产生过多少种不同冰墩墩排列?表示这两种冰墩墩,一开始排成一行为。比如你有2种共8个冰墩墩,我们用。
2023-03-29 19:42:49
172
原创 XTU OJ 1436 礼物
爸爸看了女儿的礼物单,上面有N件礼物,查到了所有礼物的价格,以及买给她会女儿开心度增加的值和不买给她开心度减少的值(每种礼物只能买1个)。此题属于01背包类问题,我的思路是从所有礼物都无法买到的负开心度开始,若能购买某件礼物则应该增加 购买礼物增加的开心度和不买礼物减少的开心度 之和,然后使用动态规划的方法找出开心度最大值。以后的N行,每行为一个礼物的价格P(1 ≤ P ≤ 200),买增加的开心度I(1 ≤ I ≤ 50),不买减少的开心度D(1 ≤ D ≤ 50)。每个样例输出1行,为最大的开心度。
2023-03-21 11:24:31
537
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人