- 博客(41)
- 收藏
- 关注
原创 集合论编程练习 | C++ | 离散数学
输入的第二行给出偏序关系≤,用有序对的形式给出(只给出哈斯图中的满足覆盖的两个元素形成的有序对),如,等等,两个相邻的有序对之间用逗号隔开。一次输入一个关系矩阵,每一行两个相邻元素之间用一个空格隔开,输入元素的行与列分别对应关系矩阵的行与列。输出的第一行给出各个极小元,两个相邻元素之间用逗号隔开,输出的元素要求按照英文字母的自然顺序排列输出。输出的第二行给出各个极大元,两个相邻元素之间用逗号隔开,输出的元素要求按照英文字母的自然顺序排列输出。输出该关系的传递闭包所对应的关系矩阵。
2022-11-05 11:03:15
708
翻译 二叉树的建立与基本操作 | C++
编写程序实现二叉树的如下操作:1) 建立二叉链表2) 二叉树的先序、中序、后序遍历3) 求二叉树的叶子结点个数4) 将二叉树中所有结点的左、右子树相互交换
2022-10-15 11:23:32
959
原创 稀疏矩阵的乘法运算 | C++ | 稀疏矩阵
数据压缩是提高传输、存储效率一种技术。教材第5章介绍了两种简单的压缩存储方法。本实验要求实现两个稀疏矩阵相乘积的算法。
2022-10-02 16:23:34
1161
原创 表达式求值(2) | c++ | 栈
带有变量的中缀表达式是常见的数学表达式。表示输出指定变量的值,则可以设计出比较复杂的表达式(即一个可顺序执行语句序列)。每个v表示一个变量,v.name是这个变量的名称,v.value是这个变量当前的值。为了简化编程实现,运算符只有+,-,*,/ ,%和^(指数运算),可以处理圆括号(),并假定输入的算术表达式正确。在表达式中,如果操作数出现负数(例如-8),则要特别注意。还是使用string,非常的方便,真的是干净又卫生啊。10加-8表示为:10+-8。10减-8表示为:10--8。
2022-09-28 17:30:16
1176
原创 求命题公式的主范式 | c++ | 栈,但是离散数学
由于计算真值的过程中出现了一定的逻辑运算,可以考虑使用栈的方法来解决这其中遇到的逻辑问题。这题主要是在字符的处理上比较麻烦,但栈的调用方式都和我们之间在数据结构中做过的前缀转后缀或者四则运算都差不多。其他的细节,比如说字符串的处理啊,自己拟写一个可以进行逻辑运算的函数啊什么的,看上去简单,反而做起来细节多到没得说。总的来说,如果用真值表法做这道题,你需要熟练地掌握:用栈来做四则运算,看上去复杂,其实简单。实现功能:输入命题公式的合式公式,求出公式的真值表,并输出该公式的主合取范式和主析取范式。
2022-09-22 21:16:14
1864
原创 从中缀向后缀转换表达式 | c++ | 栈
至于中缀转后缀的具体操作过程,其实和普通的中缀表达式的运算过程差不多。当然读懂上面的中缀表达式算法之后靠自己想出来中缀转后缀也不是啥难事就是了。中缀表达式就是我们通常所书写的数学表达式,后缀表达式也称为逆波兰表达式,在编译程序对我们书写的程序中的表达式进行语法检查时,往往就可以通过逆波兰表达式进行。我们所要设计并实现的程序就是将中缀表示的算术表达式转换成后缀表示,例如,将中缀表达式。为了简化编程实现,假定变量名均为单个字母,运算符只有+,-,*,/ ,^和圆括号 (),并假定输入的算术表达式正确。
2022-09-21 16:00:23
918
2
原创 求循环小数 | C++ | 单向循环链表
循环小数,对其非循环部分,采用单向的线性链表;对于其循环部分,采用循环链表。因此,最终的存储结构就很清晰了。
2022-09-16 19:15:03
1055
原创 约瑟夫问题 | c++ | 链表基础应用
约瑟夫问题是一个经典的问题。已知 n 个人(不妨分别以编号 1,2 ,3,…,n 代表 )围坐在一张圆桌周围,从编号为 k 的人开始,从1开始顺时针报数 1, 2, 3, ...,顺时针数到m 的那个人,出列并输出。然后从出列的下一个人开始,从1开始继续顺时针报数,数到 m的那个人,出列并输出,…
2022-09-06 08:08:29
768
原创 有一个人前来买瓜 | C++ | 二维背包问题
具体的循环过程是这样的,对每一个瓜,我扫描所有的重量和成熟度的组合,如果dp[ j ][ k ]有价值,我就可以考虑进行转移,转移情况有两种,即买这个瓜和不买这个瓜,因此转移方程为dp[ j+w[i] ] [ k+v[i] ] = max( dp[j][k]+g[i] , dp[ j+w[i] ] [ k+v[i] ])。接下来n行,每行三个整数,第i行的三个整数为wi,vi,gi(1≤wi,vi,gi≤100),分别代表第i个瓜的重量,成熟度和价值。具体过程去课本上或者网络上一搜便是,也不难,不多赘述。
2022-09-05 08:48:14
1857
原创 方向标 | c++ | 动态规划
假设从下往上数第k块箭头的情况数为S(k),第(k+1)块箭头的情况数为S(k+1),S(k+1)和S(k)之间是有关系的。题目输入共两行,第一行是木板的数量 n ,第二行的数据量为 n+1 ,其中第二行的第一个数据是最下面箭头的底部,之后的n个数据是第n-1行箭头的顶部。
2022-09-03 19:50:22
1258
原创 进圈 | BFS
龙龙只能移动在允许行走的沙地上,同时每一时刻,龙龙只能朝着当前位置周围的上、下、左、右四个方向移动。请输出一个正整数 t,表示龙龙从(x1,y1)到(x2,y2)进圈最少需要的时间(分钟),如果龙龙最终不能进圈,则请输出-1。...
2022-09-01 14:39:57
646
原创 成语接龙 | c++ | 建图和BFS
当我上优快云搜索“图的实现”,出来的结果往往是先梳理图的基本知识,然后立刻就毫无征兆地冒出来一堆莫名其妙的代码,不加任何解释,让我看着非常头大。例如这例中,第一层是1,第二层是2和3,第三层是4、5、7,第四层是8、6、A、9。换言之,你想从1访问到A,A在第四层,也就是说最短步数为4,这个最短路径为1->3->7->A。注意,一条分支下面可能还有多个分支,但是不要紧,我们完全是随机选择的,只要能走到底就行了。于是回溯到上一步,为F,F有分支FH,于是顺着这一条路走到底,走到了I,至此,DFS结束。...
2022-08-30 17:05:28
2879
1
原创 查寝 | c++ | 不用双向链表(下篇)
在这个优化版本中,我把next和previous改为link1和link2,它们是artical的两根“链条”,这样我就不需要再考虑artical之间的先后关系,只要它们是“串在一起”的就行了。这个就是思路三的优化版本。......
2022-08-28 12:24:14
317
原创 查寝 | c++ | 不用双向链表(上篇)
具体来说,小军有 n 件物品,放在 n 个盒子里,第 i 个盒子有物品 i ,小军会进行 m 次整理,第i次整理,小军会依次在第 x 个盒子顶拿走物品放入第 y 个盒子内,直至第 x 个盒子完全搬空。
2022-08-27 16:12:42
685
原创 看楼房 | C++ | 栈
我们需要让楼高入栈,确保从栈底到栈顶是递减的,栈内每一个元素就是我们在当前位置所能看到的每一栋楼房;在此基础上,统计这些楼房的颜色有几种,就是我们观察到的颜色数量。在从左向右看楼房的时候,左边较矮的楼房会被右边较高的楼房挡住。
2022-08-25 16:47:34
1158
原创 水晶球 | c++ | sort初体验
如果 k = 2,则请输出两个正整数 x , y (1 ≤ x , y ≤ n)(用空格间隔),表示久莲希望亚瑟斯帮她将编号为 x 和 y 的水晶石融合成一块更大的水晶石,并选择用这块水晶石来打磨加工。同时亚瑟斯有一种魔法,如果这两块长方形水晶石在某一个面能够完美的契合在一起(完美的契合是指这两个长方形面全等),那么可以将它们融合成一块完整的大石头,如果真的实现的话,那么久莲就可能打磨出更大的水晶球啦!对于样例,如果久莲选择第六个水晶球,那么她可以打磨成半径为 r = 2.5 的水晶球,这是最优的选择。..
2022-08-24 14:59:04
335
Java期末重点复习(3)
2022-11-21
Java期末重点复习(2)
2022-11-17
Java期末重点复习(1)
2022-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人