摘要: 《最痛苦的一集》 从开始的找维护变量 到依据i比较 依据y比较 最后发现问题出在没初始化( 如果不将答案赋值为极小值 那么它最小值就是0 因此 wa了无数遍 下面是思路 首先 要维护的变量有: \(区间的左右边界 \,l,\,r\) \(区间的答案 \,ans\) \(含左端点最大值\,lans\, 阅读全文
posted @ 2024-02-20 17:15 DrRatio 阅读(51) 评论(3) 推荐(5) 编辑
摘要: 线段树模版 一埋头扎进线段树一上午 感觉很神奇 几个函数就能把它完整的复现下来 这里有几张基础概念的图 对着代码来想 还是很好理解的 最后 是整理了能够处理总和 最大值和最小值的线段树模版 code: $\LARGE\color{purple}{代码在这里}$ #include <bits/stdc 阅读全文
posted @ 2024-02-19 11:51 DrRatio 阅读(41) 评论(4) 推荐(1) 编辑
摘要: 动态规划 学完了五大基础dp 做个简单总结 dp特征 动态规划问题 首要是找到做题的目的 是求最大/小值 还是其他; 其二 要确定问题的状态转移方程 这是关键; 第三 为dp数组找到边界、 最后 检查是否需要结合其他相关知识 如树 dfs等; 别忘了检查多测输入 数组变量置零等易错点。 背包dp 以 阅读全文
posted @ 2024-02-17 17:59 DrRatio 阅读(160) 评论(18) 推荐(7) 编辑
摘要: 我们都知道 递归是不断运行函数以得出结果的运算方式 它的优点在于 简单的几行公式就完全阐释了变换规律 当然 缺点也很明显: 如果要重复进行大数据的运算 会让计算时间极大幅度变长 因此 对递归的优化就尤为重要 首先 题目在这里 原超时代码如下 点击查看代码 #include <bits/stdc++. 阅读全文
posted @ 2024-02-17 07:20 DrRatio 阅读(54) 评论(3) 推荐(2) 编辑
摘要: 相关题目 已知\(Ackermann function\)为 \[Ack(m,n)=\begin{cases}n+1(m=0) \\ Ack(m-1,1)(m>0,n=0) \\ Ack(m-1,Ack(m,n-1)(m>0,n>0) \end{cases} \]当\(m=1\)时 有 \(Ack( 阅读全文
posted @ 2024-02-16 20:10 DrRatio 阅读(49) 评论(0) 推荐(2) 编辑
摘要: 题目在这里 ———————————————————————————————— 三色二叉树 首先 题面写的很清楚了 是一道树状数组题 因为这题的输入方式很特别 按二叉树序列 所以在输入上要特殊处理 如下 void read(int x) {//读入+存图 以左右子树为形式 如l[x]=y即y为x左子树 阅读全文
posted @ 2024-02-16 17:49 DrRatio 阅读(45) 评论(2) 推荐(2) 编辑
摘要: 题目在这里 ———————————————————————————————— Employment Planning 简单的一道dp 关键的点在于想到用枚举实现各种情况的讨论 关键的注释写在代码里了 还是很清晰的捏~ #include <bits/stdc++.h> #define fo(x,y,z 阅读全文
posted @ 2024-02-16 14:46 DrRatio 阅读(16) 评论(0) 推荐(3) 编辑
摘要: 从头回顾(截至搜索) #define fo(x,y,z) for(int (x)=(y);(x)<=(z);(x)++) #define foo(x,y,z) for(int (x)=(y);(x)<(z);(x)++) #define fu(x,y,z) for(int (x)=(y);(x)>= 阅读全文
posted @ 2024-02-05 08:58 DrRatio 阅读(48) 评论(5) 推荐(1) 编辑