上一页 1 ··· 6 7 8 9 10 11 12 下一页
摘要: 能量消耗:一个前缀和优化 dp 的大典题,要是数据水一点 O(n3) 都能硬草过去。 思路 显然,定义 dp[i] 为考虑前 i 个塔,并且将第 i 个塔开启,将前面的精灵全部收集的最小代价。 于是转移: \[dp[i]=min(dp[i],dp[j]+w(j,i) 阅读全文
posted @ 2024-08-01 22:54 KS_Fszha 阅读(16) 评论(0) 推荐(1) 编辑
摘要: 跑路:绝佳倍增好题,思路是化 2k1 ,倍增起预处理作用。 最近不知道是撞了什么运,前一脚看的是绿题,写完之后交一发,发现直接被 lxl 升蓝了,血赚。 思路:Floyd 首先观察到每次走 2k 的代价为 1 ,我们可以预处理出每次走 2i 能到哪 阅读全文
posted @ 2024-08-01 16:24 KS_Fszha 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 思路不难想,细节比较多。 思路 观察到 n19 ,首先想到状压 dp 。 于是自然地定义 dp[j][i] 为:抵达点的状态为 i ,且此时在点 j 时,简单路径的条数。注意这里是简单路径的条数,而不是环的个数,因为环的个数要在 dp 过程中统计。这里的 d 阅读全文
posted @ 2024-07-31 23:09 KS_Fszha 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 拓扑排序好题。 阅读全文
posted @ 2024-07-30 21:12 KS_Fszha 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 绝世树形 dp 好题。一般看到有关树上“路径”的题,就要把路径拆成一个个独立的单边,对每个单边独立计算贡献。同时还有易错的树形背包上下界优化,用链构造卡掉。 阅读全文
posted @ 2024-07-26 23:25 KS_Fszha 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 状态设计 基本上每一种 dp 都有一种标准的 dp 定义方式,树形 dp 也是如此: 定义 f[u] 表示以 u 为根节点的子树里最优的决策。 从分析子树入手,转移便是找到某一子树中,根节点与各子树、边权间的递推关系。 最优解常常是关于根节点的函数。 它的子结构是一颗子树。 实现方式 阅读全文
posted @ 2024-07-24 22:54 KS_Fszha 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 二分答案有一个很显著的特征:一定存在一个临界值,单调性只是临界值的一种,而不是全部。 临界值,就是寻找第一个/最后一个满足要求的值,这又分别对应着两个完全不同的二分模板,这里做题时推荐使用“第一个满足要求的值”,即对应着 STL 中的 upper_bound ,手写板对应着 这篇文章 里讲的模板。 阅读全文
posted @ 2024-07-23 22:27 KS_Fszha 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 依据值域的 O(n2) 做法 这种做法只适用于这种值域小的题,下一种做法才是求等差数列的通解。 我们定义 f[i][j] 表示以 hi 为最后一个数,公差为 j 的等差数列(长度 2 ) 的个数。 接下来我们找每一个数前面的数,确定公差后转移即可。 阅读全文
posted @ 2024-07-23 15:33 KS_Fszha 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 题目:绝世好题。 暴力 dp 显然 O(n2) 转移即可。 单调队列优化 观察到只有某二进制位两个数都为 1 时才能转移,因此我们把每个二进制位开一个单调队列,然后对于一个数 a ,找到它是 1 的二进制位并选其单调队列的队头进行转移,在这之后把这个数加入符合要求的 阅读全文
posted @ 2024-07-22 21:14 KS_Fszha 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题目:编辑距离 。 思路 显然,定义 f[i][j] 表示字符串 a 中前 i 个字符到 字符串 b 中前 j 个字符的编辑距离。 那么对于 ai=bj 时,我们对当前位无需进行任何编辑操作,则 f[i][j]=f[i1][j1]阅读全文
posted @ 2024-07-22 15:20 KS_Fszha 阅读(14) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 下一页
点击右上角即可分享
微信分享提示