上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 67 下一页
摘要: 状态表示: \(f(u,0)\):表示以$u$为根的子树,不打劫$u$的情况下所能获取的最大价值。 \(f(u,1)\):表示以$u$为根的子树,打劫$u$的情况下所能获取的最大价值。 状态转移: \[ f(u,0)=\sum_{j\in Son(u)} \max(f(j,0),f(j,1)) \\ 阅读全文
posted @ 2021-04-17 11:46 Dazzling! 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 首先考虑最简单的情况。如果只有一间房屋,则偷窃该房屋,可以偷窃到最高总金额。如果只有两间房屋,则由于两间房屋相邻,不能同时偷窃,只能偷窃其中的一间房屋,因此选择其中金额较高的房屋进行偷窃,可以偷窃到最高总金额。 注意到当房屋数量不超过两间时,最多只能偷窃一间房屋,因此不需要考虑首尾相连的问题。如果房 阅读全文
posted @ 2021-04-17 10:44 Dazzling! 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 解法一 状态表示: \(f(i,0)\):表示考虑前$i$家商店且不窃取第$i$家店铺的情况下所获得的最大价值。 \(f(i,1)\):表示考虑前$i$家商店且窃取第$i$家店铺的情况下所获得的最大价值。 状态转移: \[ f(i,0)=\max(f(i-1,0),f(i-1,1)) \\ f(i, 阅读全文
posted @ 2021-04-17 10:00 Dazzling! 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 最小值最大,显然二分了。 check()函数判断当前相邻点距离为$mid$的情况下能选处多少个点,若选出的点的数量大于等于$m$则满足要求,可继续扩大左边界。 注意点 左边界取为$o$,因为存在所有数均相等的情况,此时的答案为$0$。 const int N=1e5+10; int a[N]; in 阅读全文
posted @ 2021-04-16 23:55 Dazzling! 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 完全背包。 对于$a_1x_1+a_2x_2+a_3x_3+\cdots+a_nx_n=c$ 如果$a_1,a_2,a_3,\cdots,a_n$互质,$x_1,x_2,x_3,\cdots,x_n$一定有解且有无穷多个。但此时导致方程无解的$c$的个数有限,也就是凑不出的包子数目有限。 如果$a_ 阅读全文
posted @ 2021-04-16 19:01 Dazzling! 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 朴素做法,$01$背包。时间复杂度:\(O(4nm)\)。 状态表示: \(f(i,j,k)\):从前$i$个数中选,总和模$K$的余数为$j$,且当前已选的数的个数为$k$个。 状态转移: \[ f(i,j,k)=\max(f(i-1,j-w[i],k-1)+w[i],f(i-1,j,k)) \] 阅读全文
posted @ 2021-04-16 12:15 Dazzling! 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。 /** * Definition for singly-linked list. * struct ListNode 阅读全文
posted @ 2021-04-15 17:49 Dazzling! 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 状态表示: \(f(i,j)\):以$s_1[i]$和$s_2[j]$为结尾的两个子串$s_1[0 \sim i]$和$s_2[0 \sim j]$,它们的公共子串的长度。 遍历所有的$i,j$,其中最大的$f(i,j)$就是答案。 状态转移: \[ \begin{cases} f(i,j) = 0 阅读全文
posted @ 2021-04-14 23:39 Dazzling! 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题意 一棵根为$S$的树,选择性切掉一些边,求使得所有的叶子都不能到达根的最小代价。 思路 树形$DP$。 树型$DP$本质上可以说是个搜索——遍历这棵树,在返回的时候维护相关的值。 不管是写$DP$还是写搜索其实都是要分析原问题和子问题分别是什么的,我们的原问题是以$S$为根的子树删掉权值和尽量小 阅读全文
posted @ 2021-04-14 09:15 Dazzling! 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 上一题POJ 2955 Brackets求的是满足完美匹配的最大括号数量,而这题问的是使所有括号完美匹配需要添加的最小括号数量。 要使添加的括号尽量少,我们需要使原来的括号序列尽可能多得匹配,先求最大匹配数量,那么还剩下一些没有匹配的括号,我们就需要依次加上一个括号使它们得到匹配。 状态表示: \( 阅读全文
posted @ 2021-04-13 21:32 Dazzling! 阅读(67) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 67 下一页