随笔分类 -  寒假刷题

摘要:2.20 [P1040 NOIP 2003 提高组] 加分二叉树 - 洛谷 (luogu.com.cn) 首先说明这是一道区间dp 我们可以定义\(dp[i,j]\)i结点到j结点为这根树的最大分数,那么可以考虑就是\([i,j]\)区间中存在k为根节点 迭代方程就为\(dp[i][j] = max 阅读全文
posted @ 2025-02-20 23:04 Mikkeykarl 阅读(11) 评论(0) 推荐(0)
摘要:2.18 P1613 跑路 - 洛谷 (luogu.com.cn) 越来越感觉在做图论了....... 首先本题运用了倍增的思想(特地去学了一下倍增),倍增主要是运用于lca(寻找结点的最近祖先结点)的问题中。简单来说我们维护一个一维线性数组,也就是\(dp[i][j]\)表示我们从i点向右走\(2 阅读全文
posted @ 2025-02-18 19:01 Mikkeykarl 阅读(13) 评论(0) 推荐(0)
摘要:2.17 P1352 没有上司的舞会 - 洛谷 (luogu.com.cn) \(dp[i][1/0]\)表示以i结点为根节点时,选或者不选所得到最大幸福值 我们dfs到叶子结点后在回溯时进行dp 假如我们选择了boss,那么boss的子节点就不能再选,\(dp[parent][1] += dp[s 阅读全文
posted @ 2025-02-17 23:02 Mikkeykarl 阅读(14) 评论(0) 推荐(0)
摘要:2.16 [P1070 NOIP 2009 普及组] 道路游戏 - 洛谷 (luogu.com.cn) \(dp[i]\)表示前i个时间,所最多收集的金币 如果是\(O(n^3)\)的做法的话,我们只需要枚举起点,步数,时间就行了 但是可能是数据弱的问题,本题这样做就ac了,标答应该用优先队列维护为 阅读全文
posted @ 2025-02-16 16:14 Mikkeykarl 阅读(8) 评论(0) 推荐(0)
摘要:CF607B Zuma - 洛谷 (luogu.com.cn) \(dp[i][j]\)表示在这个\((i,j)\)区间中所使用的最短时间。 考虑转移方程,因为是回文字符串,所以当\(arr[left] != arr[right]\)时,有\(dp[left][right] = dp[left + 阅读全文
posted @ 2025-02-15 18:55 Mikkeykarl 阅读(12) 评论(0) 推荐(0)
摘要:[P3205 HNOI2010] 合唱队 - 洛谷 (luogu.com.cn) import java.io.*; import java.util.*; import java.util.zip.ZipEntry; public class Main implements Runnable { 阅读全文
posted @ 2025-02-15 18:54 Mikkeykarl 阅读(20) 评论(0) 推荐(0)
摘要:2.11 P1775 石子合并(弱化版) - 洛谷 (luogu.com.cn) 可以说是区间dp入门的基本题目了 状态数组\(dp[i][j]\)为区间i到j合并后的消耗最小值 那么我们只需要枚举区间长度,区间起点(区间末可以通过前面两个算出),再枚举区间中间的隔断点,即可得出最大值 我们用前缀和 阅读全文
posted @ 2025-02-11 22:49 Mikkeykarl 阅读(14) 评论(0) 推荐(0)
摘要:[P2340 USACO03FALL] Cow Exhibition G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)\ 很不错的一道题,我们考虑把本题转换为01背包,因为每只奶牛只有选或者不选两种可能性 \(dp[i][j]\)记录为在前i头奶牛中,智商为j时所得到的情商最大数 阅读全文
posted @ 2025-02-10 18:17 Mikkeykarl 阅读(18) 评论(0) 推荐(0)
摘要:2.9 [P1435 IOI 2000] 回文字串 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 先说思路,我们这里有样例Ab3bd,反着读是db3bA,我们发现重复的是b3b,不重复的是Ad两个字符,相当于我们只要补全这两个字符为偶数,就可以使他成为回文串。答案就为2。 ok, 阅读全文
posted @ 2025-02-09 23:20 Mikkeykarl 阅读(22) 评论(0) 推荐(0)
摘要:2.8 [P1004 NOIP 2000 提高组] 方格取数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题一开始是想用\(dp[i][j]\)来代表走到i,j后所得到的最大值,根据转移方程\(dp[i][j] = max(dp[i][j - 1],dp[i - 1][j] 阅读全文
posted @ 2025-02-08 17:01 Mikkeykarl 阅读(21) 评论(0) 推荐(0)
摘要:P1874 快速求和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 本题\(dp[i][j]\)代表以i结束和为k的最小加号用量,用\(num[i][j]\)代表i-j范围内的数字 转移方程为\(dp[i][k] = min(dp[j][k - num[j + 1][i]]) + 阅读全文
posted @ 2025-02-07 23:00 Mikkeykarl 阅读(15) 评论(0) 推荐(0)
摘要:2.6 P1725 琪露诺 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 首先我们先简化一下本题,如果我们假设有一个数为\(x\),我们每次从某一个地点到另一个地点需要加上\(x\),那么可以得到线性模板dp,也就是\(dp[j + x] = max(dp[j]) + 1\), 阅读全文
posted @ 2025-02-06 19:48 Mikkeykarl 阅读(17) 评论(0) 推荐(0)
摘要:2.5 [P1020 NOIP 1999 提高组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 本题两个问,第一个问如下 step1 第一眼看到就觉得是一道线性dp的板子题,最长上升子序列。第一反应就是\(O(N^2)\)来解决,显然是会T的。转而思考优化,选用二分进 阅读全文
posted @ 2025-02-05 23:37 Mikkeykarl 阅读(24) 评论(0) 推荐(0)
摘要:2.2 [P2527 SHOI2001] Panda的烦恼 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 发现n小k大,复杂度为O(n * k),大概会吃到1e7的复杂度,姑且可以低空飘过 考虑运用set,java中的话就是TreeSet,自动提供排序和排重的功能 ok,那么先放 阅读全文
posted @ 2025-02-02 18:47 Mikkeykarl 阅读(30) 评论(0) 推荐(0)
摘要:2.1 P1144 最短路计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 用java会吃T,java底层没有加速这道题会被卡常数 本质上就是用bfs来进行搜索每个点与点1的最近距离,然后维护两个数组来计算路径条数,其实就是一个spfa算法的实现 import java.io. 阅读全文
posted @ 2025-02-02 01:22 Mikkeykarl 阅读(20) 评论(0) 推荐(0)
摘要:1.30 Maze - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 从一个空格走cnt - k个点并标记,然后将没有标记的点设为A即可 import java.io.BufferedReader; import java.io.IOException; import java.io 阅读全文
posted @ 2025-01-30 18:46 Mikkeykarl 阅读(15) 评论(0) 推荐(0)
摘要:骑士的移动 Knight Moves - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 注意输入即可,做一个剪枝 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream 阅读全文
posted @ 2025-01-26 15:57 Mikkeykarl 阅读(18) 评论(0) 推荐(0)
摘要:P4961 小埋与扫雷 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 本题#17报RE错,是因为栈溢出,查询了资料之后发现,java主线程分配的栈块太小,递归深度太大就会发生这种问题,我们写爆搜不可避免要在Tle和爆栈边缘徘徊,这也是和c++相比一个比较弱势的点,那么有没有方法解 阅读全文
posted @ 2025-01-24 19:22 Mikkeykarl 阅读(36) 评论(0) 推荐(0)
摘要:P3915 树的分解 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题感觉更考到了递归的本质。我们说递归,我目前的理解是,把无数个相似的问题拆分成一个个个体,然后去依次分类解决,然后返回给上层,这么一个感觉。 这道题难点虽然是普及难度,但是实话实说,我在树的方面基础还是比较薄 阅读全文
posted @ 2025-01-23 22:00 Mikkeykarl 阅读(22) 评论(0) 推荐(0)
摘要:P1123 取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 本题一开始是想写双for循环,复杂度\(O(n^n)\),不出意外T了三个点,然后思考剪枝,考虑到不需要重新找,做了一个bool数组来标记,防止重新搜索已经出现过的方案,过了第四个点。 后面看了题解后,发现这一思 阅读全文
posted @ 2025-01-22 17:57 Mikkeykarl 阅读(32) 评论(0) 推荐(0)