随笔分类 -  训练level1

上一页 1 2 3 4 下一页
涉及基础算法及基础建模
力扣300 最长递增子序列
摘要:1.动态规划,时间复杂度O(n^2) 1 class Solution { 2 public: 3 vector<int> dp; //表示以dp[i]表示以i结尾的最长子序列长度 4 int lengthOfLIS(vector<int>& nums) { 5 dp.resize(nums.siz 阅读全文
posted @ 2025-02-17 21:46 Coder何 阅读(12) 评论(0) 推荐(0)
PAT 2024年春季 甲级 A-3 Degree of Skewness(二叉树的构建)
摘要:给出后序和中序遍历序列,求出只有左子树和只有右子树的结点之差 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 int nl = 0, nr =0; 5 struct node{ 6 int data, lchild = -1, 阅读全文
posted @ 2024-12-09 20:00 Coder何 阅读(23) 评论(0) 推荐(0)
1025 PAT Ranking(模拟、排序)
摘要:方法一:先对总榜按要求进行排序,再遍历总榜时持续维护绝对排名和相对排名并输出即可 方法二:结构体中包含本地排名,在每输入一个测试点的数据以后就进行局部排序,得到本地排名,再将局部信息push到总榜中,再对总榜进行排序,直接输出即可。 方法一需要多开三个数组来维护本地排名信息,空间复杂度高了,但时间复 阅读全文
posted @ 2024-11-21 20:30 Coder何 阅读(18) 评论(0) 推荐(0)
1024 Palindromic Number(回文串、大数相加)
摘要:本题主要考察大数相加,有注意点: 1.使用reverse函数可以快速反转string 2.若是常规的大数相加,记得注意两数的长度来控制遍历条件。 1 #include<bits/stdc++.h> 2 using namespace std; 3 string n; 4 int k; 5 bool 阅读全文
posted @ 2024-11-20 21:39 Coder何 阅读(22) 评论(0) 推荐(0)
1022 Digital Library(模拟)
摘要:要注意输入输出:1.输入带空格的string类时使用getline函数 2.使用cin输入后需要使用getchar()清除行末换行符,否则下一行的输入会受影响(getline操作会多出一个空行) 3.该题在连续读取关键字时,使用getchar()可以很方便地找到换行符 4.scanf、printf的 阅读全文
posted @ 2024-11-20 20:57 Coder何 阅读(16) 评论(0) 推荐(0)
计蒜客:圣诞树(dijkstra,特殊的生成树)
摘要:基础原理:特殊的生成树 给定一张无向图,其中边权都是正数,你需要求出总代价最小的生成树,生成树上每条边 (u,v)(u,v) 的代价为 w(u,v)∗count(v)w(u,v)∗count(v),其中 w(u,v)w(u,v) 为边 (u,v)(u,v) 的权值,count(v)count(v)  阅读全文
posted @ 2024-11-12 23:45 Coder何 阅读(54) 评论(0) 推荐(0)
计蒜客:骑车比赛(Dijkstra)
摘要:学习堆优化的写法 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n, m, a, b, c; 4 typedef pair<int, int> pii; //first表示距离,second表示节点号 5 vector<pii> gra 阅读全文
posted @ 2024-11-08 21:07 Coder何 阅读(19) 评论(0) 推荐(0)
计蒜客:公告板(线段树)
摘要:难点在于要把模型抽象出来。 第一眼看到题面,想到的是以公告板的高度作为线段树的区间,但看到h<=10^9以后,感觉又开不了这么大的数组。但实际上,最多只有n块公告,所以最极端的情况下不过只有n行,所以区间的真正大小是[1,min(n,h)]。 解决了区间的问题,再来考虑每个节点要维护的信息。我们希望 阅读全文
posted @ 2024-10-30 20:48 Coder何 阅读(13) 评论(0) 推荐(0)
计蒜客:最甜的苹果(线段树)
摘要:样例输入 5 6 1 2 3 4 5 Q 1 5 U 3 6 Q 3 4 Q 4 5 U 2 9 Q 1 5 样例输出 5 6 5 9 这题我们需要维护的信息,从区间的和变成了区间内的最大值。现在区间的内的某个值可能增大可能减小,若从上到下(从根到叶)进行节点更新,我们无法直接判断目前区间内的最大的 阅读全文
posted @ 2024-10-29 21:13 Coder何 阅读(23) 评论(0) 推荐(0)
计蒜客:斑点蛇(线段树)
摘要:样例输入 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End 样例输出 6 33 59 采用标准模板即可。注意线段树的节点个数一般为其范围的4倍。 1 #include<bits/st 阅读全文
posted @ 2024-10-15 20:13 Coder何 阅读(28) 评论(0) 推荐(0)
牛客小白月赛100 ACM中的CM题
摘要:示例1 3 1 1 2 输出 2 说明 瞬移到1处排 [1, 1]的2个雷 瞬移到2处排 [2, 2]的1个雷 示例2 4 1 2 4 5 输出 3 首先尝试了暴力解法,结果当然超时了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 bool 阅读全文
posted @ 2024-09-06 23:23 Coder何 阅读(94) 评论(0) 推荐(0)
牛客周赛 Round 57 D-小红的线段(贪心)
摘要:示例1 输入 2 -1 2 0 0 0 1 1 0 1 1 输出 1 1 2 N 3 4 Y 说明 连接第一个点和第二个点,和直线没有交点。连接第三个点和第四个点,和直线有交点。 贪心策略: 把点集分为三部分,直线上方m1、直线下方m2以及在直线上m3,我们可以发现: m1中的点和m2中的任意点相连 阅读全文
posted @ 2024-08-25 21:38 Coder何 阅读(71) 评论(0) 推荐(0)
牛客小白月赛99 C-迷宫(DFS)
摘要:题目描述 给定一个 n×m\mathrm{n \times m}n×m 的迷宫,迷宫由 "#" 与"." 两种字符组成。其中 "#" 代表障碍物,"." 表示空地。迷宫中还有一个起点 "S" 和一个终点 "E" ,它们都可以视为空地。 由于近期迷宫发生了塌方,导致起点和终点之间可能并不连通。幸运的是 阅读全文
posted @ 2024-08-24 18:33 Coder何 阅读(104) 评论(0) 推荐(0)
力扣2477. 到达首都的最少油耗(dfs+贪心)
摘要:给你一棵 n 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 0 到 n - 1 ,且恰好有 n - 1 条路。0 是首都。给你一个二维整数数组 roads ,其中 roads[i] = [ai, bi] ,表示城市 ai 和 bi 之间有一条 双向路 。 每个城市里有一个代表, 阅读全文
posted @ 2023-12-12 21:47 Coder何 阅读(18) 评论(0) 推荐(0)
力扣1038. 从二叉搜索树到更大和树(dfs)
摘要:给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下, 二叉搜索树 满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。 示例 1: 输入:[4,1 阅读全文
posted @ 2023-12-06 11:06 Coder何 阅读(29) 评论(0) 推荐(0)
力扣907. 子数组的最小值之和(单调栈)
摘要:给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 10^9 + 7 。 示例 1: 输入:arr = [3,1,2,4] 输出:17 解释: 子数组为 [3],[1],[2],[4],[3,1],[1,2], 阅读全文
posted @ 2023-11-27 20:27 Coder何 阅读(24) 评论(0) 推荐(0)
力扣2406. 将区间分为最少组数(贪心)
摘要:给你一个二维整数数组 intervals ,其中 intervals[i] = [lefti, righti] 表示 闭 区间 [lefti, righti] 。 你需要将 intervals 划分为一个或者多个区间 组 ,每个区间 只 属于一个组,且同一个组中任意两个区间 不相交 。 请你返回 最 阅读全文
posted @ 2023-11-10 14:39 Coder何 阅读(43) 评论(0) 推荐(0)
力扣1026. 节点与其祖先之间的最大差值(DFS)
摘要:给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先) 示例 1: 输入:root = [ 阅读全文
posted @ 2023-11-01 17:29 Coder何 阅读(24) 评论(0) 推荐(0)
力扣1444.切割后面积最大的蛋糕(贪心)
摘要:矩形蛋糕的高度为 h 且宽度为 w,给你两个整数数组 horizontalCuts 和 verticalCuts,其中: horizontalCuts[i] 是从矩形蛋糕顶部到第 i 个水平切口的距离 verticalCuts[j] 是从矩形蛋糕的左侧到第 j 个竖直切口的距离 请你按数组 hori 阅读全文
posted @ 2023-10-28 11:08 Coder何 阅读(59) 评论(0) 推荐(0)
力扣22.括号生成(回溯)
摘要:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] 提示: 1 <= n < 阅读全文
posted @ 2023-10-17 16:40 Coder何 阅读(17) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页