02 2024 档案
摘要:P1014 [NOIP1999 普及组] Cantor 表 解题思路 和之前的蛇蝎矩阵很像,因此可以先构建一个蛇蝎矩阵 因为是z形所以在每个奇数次矩阵的对角线进行交换就可以了,这样就得到了我们需要的矩阵 代码实现 #define _CRT_SECURE_NO_WARNINGS #include <s
阅读全文
摘要:P4994 终于结束的起点 解题思路 通过加法同余原理可以知道f[i] % m == 0,那么f[i - 1] % m = 1,所有把f[i + 1] % m = 1转换成了f[i - 1] % m = 1的问题 那么只需要填好斐波那契数列再判断就可以了,又因为斐波那契可能会超出int的范围那么我们
阅读全文
摘要:P1012 [NOIP1998 提高组] 拼数 解题思路 要组成一个最大的整数,根据贪心的思想我们可以知道只要比较数的每一位选其中最大得就可以组成一个最大得数 但可能有些数的前几位相同,因此在选择的数的个数大于两个数时,选其中位数最短的 选择的数的个数等于两个数时选其中最长的 代码实现 #defin
阅读全文
摘要:106.从中序与后序遍历序列构造二叉树 力扣题目链接 解题思路 找到根节点在中序序列的位置 计算左子树的节点个数 开辟一个节点,并把根节点的值赋值给这个节点 根节点的左孩子和右孩子重复上面几个步骤 代码实现 /** * Definition for a binary tree node. * str
阅读全文
摘要:P5594 【XR-4】模拟赛 解题思路 重点是怎么判断是不是同一套模拟题 用一个数组来标记是不是同一套题 代码实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h>
阅读全文
摘要:62.不同路径 力扣题目链接 解题思路 一个位置只能是左边的格子或者上面的格子到达,那么路径数就是左边格子的路径数加上上面格子的路径数 代码实现 int uniquePaths(int m, int n) { int dp[101][101] = {0}; for (int i = 1; i <=
阅读全文
摘要:树 树是一种一对多的结构,它在一些有层次结构的系统中使用非常多,例如政府系统中,它们的关系就可以用树来表示。 当树中没有节点时,称为空树。 树中有一个称为"根"特殊节点。 其中每一颗子树不相交也就是没有环。 除了根节点之外的所有节点有且只有一个父节点。 一颗树有N个节点,那么就有N - 1条边,因为
阅读全文
摘要:746. 使用最小花费爬楼梯 力扣题目链接 思路: 暴力递归 解题思路 把每一种可能都枚举,也就是dfs搜索每一种可能的情况,再求出其中最小的花费返回即可。 代码实现 //求两个数中的最小值 int min (int a, int b) { return a < b? a: b; } //表示从下标
阅读全文
摘要:P2872 [USACO07DEC] Building Roads S 洛谷题目链接 解题思路 这个是一个最小生成树,把在平面直角坐标系中的点定义为顶点,把两个点的距离定义为边 但这个题目并没有给出图中的边,也就是两个点的距离,因此我们要把这个图的边给补上,这个平面直角坐标系的点的每条边都是图上的边
阅读全文
摘要:P1194 买礼物 洛谷题目链接 解题思路 这个题目是一个最小生成树或者说是贪心的题目,在这里我们把买的东西定义成顶点,边是优惠的价格 那么我们只要把每一个顶点连接起来可以了,但要注意优惠的价格 可能大于A,因此我们要比较A的价格和优惠的价格谁的花费少 接下来就是最小生成树的算法了 代码实现 #d
阅读全文
摘要:矩阵乘法两个矩阵要想相乘必须一个矩阵的行等于另一个矩阵的列 矩阵乘法的性质:单位矩阵 * 矩阵 = 原矩阵 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #incl
阅读全文
摘要:P1160 队列安排 洛谷题目链接 解题思路 首先因为要不停插入和删除一个数,所以自就要想到链表用链表来组织数据,因为链表适合频繁的插入和删除操作。 因为不是在一个固定的位置中操作所以链表删除和插入都需要O(n)的时间复杂度,但如果我们可以直接知道要插入和删除的位置,就可以实现O(1)了。 那么我们
阅读全文