重生之我要当分子
重生之我要当分子
全部文章
分类
题解(3)
归档
标签
去牛客网
登录
/
注册
重生之我要当分子的博客
全部文章
(共295篇)
题解 | [ZJOI2010]COUNT 数字计数
解题思路 对于大范围 内的数字统计,需要使用数位DP的方法: 将问题转化为求 ,表示 到 中每个数字出现的次数 则区间 的答案为 对于计算 : 考虑每一位的贡献 例如对于数字 : 个位:每 个数, 各出现 次 十位:每 个数,每个数字在十位上出现 次 百位:每 个...
2024-12-27
0
27
题解 | 串
解题思路 本题要求计算长度不超过 且包含子序列 "us" 的小写字母字符串数量。可以使用动态规划解决: 状态定义: 表示长度为 时的状态 : 还未出现 : 已经出现 ,还未出现 : 已经出现 状态转移: // 前一个状态未出现 ,新字母不是 ...
2024-12-27
0
11
题解 | 数位染色
解题思路 核心思想: 将数字转为字符串,计算所有数位之和 如果能找到一些数位,使其和为 ,则可以实现要求 本质是一个子集和问题 解决方案: 先判断总和是否为偶数(如果为奇数则无解) 使用状态压缩DP或DFS判断是否存在子集和为 由于数据范围较小(最多18位数字),可以直接DFS ...
2024-12-24
1
28
题解 | 郊区春游
解题思路 核心思想: 使用状态压缩DP解决,状态表示为 ,其中 表示当前点, 表示已访问点集合 表示当前在点 ,已经访问了 表示的点集合时的最小花费 通过二进制表示已访问的点集合 状态转移: 对于当前状态 ,枚举下一个要访问的点 代码 cpp java p...
2024-12-24
1
24
题解 | 打家劫舍(三)
解题思路 核心思想: 对于每个节点,有两种状态:选择或不选择 如果选择当前节点,则不能选择其子节点 如果不选择当前节点,则可以选择或不选择其子节点 状态定义: 表示不选择节点 时的最大金额 表示选择节点 时的最大金额 状态转移: 对所有子节点 对所有子节点 ...
2024-12-24
1
19
题解 | 二叉树中的最大路径和
解题思路 核心思想: 对于每个节点,需要考虑经过该节点的最大路径和 路径可以是:左子树->节点->右子树,或者左子树->节点,或者右子树->节点 需要自底向上计算,使用DFS 关键点: 每个节点需要返回:从该节点出发的最大路径和(只能选择一个子树) 同时需要更新...
2024-12-24
1
25
题解 | 小红的树
解题思路 核心思想: 使用DFS预处理每个节点的子树中红色节点数量 对于每次查询直接返回预处理的结果 实现步骤: 根据父节点数组构建树(邻接表) DFS遍历树,统计每个节点子树中的红色节点数 处理查询 代码 cpp java python #include &l...
2024-12-24
1
18
题解 | 红和蓝
解题思路 核心思想: 使用 数组标记配对关系: 表示节点 和 需要染成相同颜色 通过两次DFS完成配对和染色 第一次DFS (dfs1):确定配对关系 从根节点开始,自底向上处理 对于叶子节点或未配对的节点: 如果其父节点已配对,则无解 否则,将该节点与其父节点配对(赋予相同的...
2024-12-24
1
26
题解 | 旅游
解题思路 这是一个树形DP问题: 表示不选择节点 时,以 为根的子树能访问的最大天数 表示选择节点 时,以 为根的子树能访问的最大天数 状态转移: 当选择 时 ():必须选择所有子节点的不选择状态 () 当不选择 时 ():每个子节点可以选择或不选择,取 边界条...
2024-12-24
1
21
题解 | 取数游戏
解题思路 状态定义: 表示当前剩余区间 能获得的最大价值 当前是第 次取数 转移方程: 边界条件: 时, 代码 c++ java python #include <bits/stdc++.h> using namespace std; ...
2024-12-24
1
14
首页
上一页
17
18
19
20
21
22
23
24
25
26
下一页
末页