- 博客(45)
- 收藏
- 关注
原创 答案解析5
经典的分数拆分技巧:令 y=n+1(第二个变量),代入得:z1=n1−n+11=n(n+1)(n+1)−n=n(n+1)1因此 z=n(n+1)(第三个变量)。👉 样例验证:样例输入 h=5,目标 (3,3,2) → 镜像点 z 坐标 = 2*5 -2=8 → 初始向量为 (3,3,8)(与样例输出一致,且该向量 gcd=1,无需约分)。验证等式:n1+n+11+n(n+1)1=n(n+1)(n+1)+n+1=n(n+1)2n+2=n(n+1)2(n+1)=n2完全满足原式!
2025-12-14 21:16:17
651
原创 第二次测试题解
第 3 刀:要最大化分区,第 3 个平面必须与前 2 个平面都相交(得到 2 条不重合的交线,且这 2 条交线在第 3 个平面上相交)—— 相当于在第 3 个平面上,用 2 条相交直线分成了 4 块,因此新增 4 个区域 →。前 3k+2 项的和:3k 项和 + a₃ₖ₊₁ + a₃ₖ₊₂ ≡ 0 + p + q ≡ (p+q) mod 2(a₁+a₂ 的奇偶性)余数 r=2(n=3k+2)→ Sₙ ≡ 1+1=2≡0 → 0(偶)→ 代码逻辑:if n%3==1 → 1,else → 0。
2025-11-23 21:55:11
1007
原创 题目V^V
0-1背包:物品只能选一次,内层循环逆序完全背包:物品可选无限次,内层循环正序多重背包:物品有数量限制,可二进制优化分组背包:每组只能选一个物品,最内层循环组内物品变种问题:注意初始化条件和状态转移含义的变化掌握这些基本模型后,大多数背包问题都能通过适当变形解决。
2025-07-13 22:55:12
1149
原创 习题练习(滑动队列)
解题思路:遇到圆,管他三七二十一先化曲为直,然后计算每个点到下一个点的油差也就是gas[i]-cost[i]这就是当前i点的油差,然后用滑动窗口,用一个sum来表示油差,如果和大于等于0就可以到,否则到不了,如果到不了那这一段都不行,sum重新从0开始加。解题思路:这个题和之前的题差不多,但是这个题要提前处理好给定的子串,然后先吃,吃到完成之后就在吃的串可以组成给定的串的条件下维护最小的长度可以开始往后吐,直到吃下的串不能组成给定的子串,然后继续吃。解题思路:找规律,4的倍数都不行。
2025-07-03 22:50:11
977
原创 写题。贪心题组
解题思路:贪心,总数要参加更多的活动,给一个pair<int,int>或者结构体表示u和v按结束时间排序,然后就是贪心比较就行了。解题思路:模拟从头到尾的过程,贪心使得当俩者相加大于x时,使得第二个盒子的糖果减少,如果不够减少,则为0。解题思路:就这个题来说,仔细思考会发现从开始到结尾都是单调递增的,所以可以用单调栈为维持这个单调性。解题思路:模拟+贪心,我就摘力气最小的,所以按照力气排序即可。解题思路:主要还是写出val / m,按这个排序,就行了。解题思路:排序,然后逆序相乘累加再除总个数就行了。
2025-06-19 22:50:13
237
原创 洛谷习题V^V
解题思路:找规律,对于每个格子,假设都为方形的右下角,对于正方形,有这个格子在内的正方形个数为min(x,y),对于这个格子的所有的长方形(包括正方形)为x*y,既如此,遍历每个格子为右下角的情况,相加求解。解题思路:对于这个题,有a = b = c + d,只要去找a,c就够了,也就是双层for循环,但是常规的双层for循环会时间超限,所有可以用离散化map来存储,元素和元素个数,然后求解。可知,尽可能把数变的小,这样就多,乘积也就最大,即用贪心的思路去解题即可。解题思路:按照题意,排序模拟即可。
2025-05-30 15:16:26
392
原创 5月18总结
解题思路:对于这个题,我最开始想到就是二分,但是头痛的是有三个解,如果我在-100到100之间二分,那么只能得出一个解,然后我就想了一下,这个要求精度,那么0.01这么小,好像可以在0-1之间或者-1-1之间二分,然后我就觉得好像可以遍历这俩百个格子,每个格子长度为一,进行二分求解。
2025-05-18 22:49:40
223
原创 JAVAfx项目总结 && 算法题
技术 | 在项目中的应用 || IO流 | 文件读写、网络数据传输、对象序列 || 多线程 | 并发处理客户端请求任务执行 || 文件分片 | 大文件的上传与下载 |
2025-05-16 13:23:25
921
原创 mysql的基础语句和外键查询及其语句
思路:双指针思路可以吗,我就直接找G,如果后一个是1就cnt++,如果不是数字,用一个指针i指向G,另一个指针j移动,当不是G时停止,统计G的个数,如果是奇数个同时G的下一个是1,cnt++,如果为偶数同时G的下一个是1,就用那唯一一次机会G的国特抵消一次,cnt++,此后不再对偶数个G进行cnt++,同时把i移动到j指向G位置,就这样一直遍历字符串;我不知道为啥我c++代码过不了,但是python嫩果一、MySQL 基础语句。
2025-04-11 00:02:24
522
原创 习题与正则表达式
left = 1(最小可能距离),right = L(最大可能距离)。每次取,判断是否可以通过增设 ≤K个路标使得所有相邻路标的距离 ≤mid。遍历所有相邻原始路标,计算它们之间的gap。对于每个gap,计算需要插入的路标数。如果总增设数,则mid可行,尝试更小的mid;否则尝试更大的mid。最终ans即为最小的“空旷指数”。:这是递归回溯的核心函数。n是目标美味程度,current是当前配料组合,sum是当前组合的总和,index是当前处理的配料索引。当处理完所有10个配料(
2025-04-08 23:44:17
958
1
原创 JavaFX 长连接与短连接实现总结
responseArea.appendText("响应内容: " + response.toString() + "\n\n");responseArea.appendText("请求失败: " + e.getMessage() + "\n\n");messageArea.appendText("正在连接到 " + host + ":" + port + "...\n");messageArea.appendText("连接失败: " + e.getMessage() + "\n");
2025-04-02 00:36:10
1034
原创 算阶,jdk和idea的安装
排序加中位数为∣x−a∣+∣x−b∣+∣x−c∣+⋯+∣x−n∣∣x−a∣+∣x−b∣+∣x−c∣+⋯+∣x−n∣ 的最小值。用unordered_map存入,减少时间复杂度,然后通过题目比对求答案。
2025-03-06 23:39:38
331
原创 字符串哈希&&动态规划_6
dp[i][w]:表示前i个物品,背包容量为w时的最大价值。dp[i][j]:表示s[0..i-1]是否与p[0..j-1]匹配。
2025-02-17 23:04:29
866
原创 哈希&&动态规划dp_5
哈希是计算机科学中非常重要的技术,它通过将数据映射到固定大小的哈希值来实现高效的查找、插入、删除等操作。哈希算法与哈希数据结构的优化主要集中在减少哈希冲突、优化哈希函数、控制负载因子和空间消耗等方面。常见的哈希数据结构包括哈希表、哈希集合和哈希映射,而优化的方式包括合理选择哈希函数、使用不同的冲突解决策略以及空间和并行计算的优化。
2025-02-16 23:03:20
1178
原创 动态规划dp_4
从递推公式中可以看出,dp[i] 的状态依靠 dp[j]是否为true,那么dp[0]就是递推的根基,dp[0]一定要为true,否则递推下去后面都都是false了。如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。所以递推公式是 if([j, i] 这个区间的子串出现在字典里 && dp[j]是true) 那么 dp[i] = true。下标非0的dp[i]初始化为false,只要没有被覆盖说明都是不可拆分为一个或多个在字典中出现的单词。
2025-02-15 22:30:32
677
原创 单调队列queue
单调队列是一个非常强大的工具,特别适用于维护动态区间的最大值或最小值,常用于解决滑动窗口相关问题。它的核心思想是利用队列保持元素的单调性,从而在窗口或区间中高效地获取最值。在滑动窗口问题中,单调队列的应用使得时间复杂度可以优化到O(n),从而大大提高了效率。
2025-02-13 23:05:09
1036
原创 单调栈ddd
是一种特殊的栈数据结构,其栈内元素总是保持一定的单调性(单调递增或单调递减)。它是通过在栈操作过程中保证栈顶元素始终符合单调性要求,从而有效地解决一些涉及区间、最大值/最小值、左右边界等问题。
2025-02-12 11:31:28
422
原创 tarjan算法,动态规划dp_3
Tarjan 算法是一种基于 DFS 的高效算法,适用于强连通分量、桥、割点、双连通分量等问题。其时间复杂度为 O(V+E)O(V+E),空间复杂度为 O(V)O(V)。通过路径压缩、提前终止和并行化等方法,可以进一步优化 Tarjan 算法的性能。Tarjan 算法是图论中非常重要的工具,掌握其原理和实现方法对于解决复杂的图论问题非常有帮助。
2025-02-10 22:14:33
2198
原创 动态规划dp
dp[i]:i是这个位置的,而dp[i]是作用这个位置而有的值(通常是一个一维或二维数组)用来存储子问题的解。每一个表示在某个状态下的解。这个数组的意义是:通过记录之前的计算结果来避免重复计算,从而提高效率。
2025-02-08 20:03:20
2888
原创 链式前向星与SPFA
链式前向星通过数组模拟链表的方式存储图。它的核心思想是:使用head数组记录每个节点的第一条边。使用next数组记录每条边的下一条边。使用to数组记录每条边的终点。使用weight数组记录每条边的权重。
2025-02-07 19:13:19
2047
原创 最短路径问题与拓扑排序
拓扑排序(Topological Sorting)是对有向无环图(DAG, Directed Acyclic Graph)的一种线性排序,使得对于图中的每一条有向边 (u, v),u 在排序中总是位于 v 的前面。从队列中取出顶点,将其加入结果列表,并减少其邻接顶点的入度。如果某个邻接顶点的入度变为0,则将其加入队列。如果结果列表中的顶点数不等于图中的顶点数,说明图中存在环,无法进行拓扑排序。思路:dijkstra算法的的变式,也是分层图的模板题。拓扑排序的结果不唯一,可能存在多种合法的排序顺序。
2025-02-04 23:05:54
553
原创 最小生成树及最短路径
Prim算法是一种用于求解的最小生成树(MST)的。最小生成树是一个包含图中所有顶点的树,且树中所有边的权重之和最小。Prim算法的基本思想是从一个顶点开始,逐步扩展生成树,每次选择一条连接已选顶点和未选顶点的最小权重边。
2025-02-03 20:49:19
525
原创 图及其基本概要
图通过顶点和边灵活建模复杂关系,其存储方式(邻接矩阵/表)和遍历算法(DFS/BFS)是核心基础。理解图的分类与术语后,可进一步学习高级算法(如最短路径、最小生成树),解决实际场景中的网络分析问题。
2025-02-02 22:25:08
1103
原创 并查集及封装(各位!新年快乐)
封装是将数据(属性)和操作数据的方法(函数)捆绑在一起,形成一个独立的单元(通常是类)。隐藏内部实现细节:外部只能通过公开的接口访问数据,而不能直接操作内部数据。提高代码的安全性:防止外部代码随意修改内部数据。提高代码的可维护性:内部实现可以随时修改,只要对外接口不变,外部代码无需改动。封装是面向对象编程的重要特性,它通过将数据和操作数据的方法捆绑在一起,并对外隐藏内部实现细节,提高了代码的安全性、可维护性和可复用性。在 C++ 中,封装主要通过class和访问控制符(privatepublic。
2025-01-24 23:44:12
771
原创 树及二叉树
树是由节点(Node)和边(Edge)组成的层次结构。每个节点有一个父节点(除了根节点)和零个或多个子节点。:二叉树是树的一种特殊形式,每个节点最多有两个子节点,分别称为左子节点和右子节点。
2025-01-22 22:05:25
502
原创 贪心及题目
基本原理:每一步都选择局部最优解,而尽量不考虑对后续的影响,最终达到全局最优解。局限性:贪心算法不能保证获得全局最优解,但在某些问题上具有高效性。特征:贪心选择性质、最优子结构性质(根据我的观察,很多贪心的题目会出现“不同的操作产生的贡献相同”的特征,在此特征下我们每次选择代价最小的。贪心类型多且杂,需要积累联系。
2025-01-20 22:00:09
306
原创 练习,熟记
这个题,需要用到压状dp,我还没学,因此,我用了dfs,但是时间上一直过不去,每行每列的灯都有俩个状态,转动与不转动,以此进行dfs。思路:也是前面一题相似,可以选第i个也可以不选第i个进行dfs搜索,记录下最小值。思路:每一个成年的人最远够到那个位置,然后通过前缀和与差分进行解答。思路:方向向量的增大来判断yizhong,不符合条件全部变为*思路:用方位向量来表示翻转状态,并进行dfs搜索。快速幂的变化题,思路和快速幂差不多。思路:人可以去可以不去,以此进行dfs。思路:dfs搜索每个位置。
2025-01-19 20:53:55
270
原创 1月8—16日
这是大致的模板,有时候不要if判断,根据题意来if(){return;name[] = 0;同时也可以用栈来模拟dfs,回溯一次就是top--;框架int n;int head;int end;x.head++;y.head++;// 以上都是队列的各种操作代码push(0);while (!for(){ //来扩散if(){ // 判断push();// 入队pop();
2025-01-16 17:17:11
930
原创 数据结构与算法1
因此,对于何时用数组,何时用链表是由题目进行选择的,访问多则数组,插入删除等操作多则链表。思路,因为其插入和删除较多,所以用链表,俩边都可以插入,所以是双向连链表,同时用一个指针数组来存储每个数在链表中的位置指针,可降低时间复杂度(我开始就是吃了这个亏)栈:与队列不同的是只有一个栈顶,同时是先进后出的方式,使用前也要进行初始化,可以用于dfs深度搜索,搜索完后top--进行回溯。数组:可以进行多种操作,插入,查找,添加和删除等操作。思路:找规律,1个1次,2个3次,3个7次,既有n个为2^n-1次。
2025-01-15 17:30:21
596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅