P5024 保卫王国】的更多相关文章

题面 https://www.luogu.com.cn/problem/P5024 分析 可以对有限制的点对之间的链进行在倍增上的DP数组合并. 需要通过一次正向树形DP和一次换根DP得到g[0][i][0/1]表示以i为根的子树中i为0/1的最小代价和g[1][i][0/1]表示整棵树除了以i为根的子树i为0/1的最小代价. 然后倍增数组上减去儿子方向的DP值进行预处理.倍增数组f[i][0/1][0/1][j]表示i向上跳$2^{j}$ 次,i的状态为0/1,跳到的祖先的状态为0/1的DP值…
传送门 我现在还是不明白为什么NOIPd2t3会是一道动态dp-- 首先关于动态dp可以看这里 然后这里就是把把矩阵给改一改,改成这个形式\[\left[dp_{i-1,0},dp_{i-1,1}\right]\times \left[\begin{matrix}\infty&ldp_{i,1}\\ldp_{i,0}&ldp_{i,1}\end{matrix}\right]\] 然后就是改成\(longlong\),以及改一改取最小.关于强制取或不取,只要让值加上一个极大值或减去极大值就可…
窝当然不会ddp啦,要写这题当然是考虑优化裸dp啦,但是这题非常麻烦,于是变成了黑题. 首先,这个是没有上司的舞会模型,求图的带权最大独立集. 不考虑国王的限制条件,有 \[ dp[x][0]+=dp[y][1]\\ dp[x][1]+=min(dp[y][1],dp[y][0]) \] 现在考虑限制条件,如果对每一个限制条件都做一次dp,复杂度达到\(O(n^2)\),无法承受. 显然,对于这些限制条件,每一次的变动不会影响其它大多数的状态. 对于一个限制条件,我们分开考虑,先考虑只对一个城市…
前言 传送门 很多人写了题解了,我就懒得写了,推荐一篇博客 那就分享一下我的理解吧(说得好像有人看一样 对于每个点都只有选与不选两种情况,所以直接用倍增预处理出来两种情况的子树之内,子树之外的最值,最终答案以拼凑的方式得出 如果这个题要修改权值的话就真的只能用动态dp了(好像还有那个什么全局平衡树 我真的觉得去年出题人只是想出一个倍增,结果被动态dp干了(Ark:出题人真的只是想出一个动态dp #include<cstdio> #include<cstring> #include&…
做法(倍增) 最好写的一种 以下0为不选,1为选 \(f_{i,0/1}\)为\(i\)子树的最小值,\(g_{i,0/1}\)为除i子树外的最小值 \(fh_{i,j,0/1,0/1}\)为确定\(i\)与\(i\)的\(2^j\)级祖先的状态,\(i\)的\(2^j\)祖先不包括i子树的最小值 这个转移挺好想的,故不赘述 查询 考虑边倍增爬上去,边处理即可 #include<bits/stdc++.h> typedef long long LL; const LL maxn=1e6+9,i…
\(\mathcal{NOIP2018}\) 保卫王国 - 竞赛题解 按某一个炒鸡dalao名曰 taotao 的话说: \(\ \ \ \ \ \ \ \ \ "一道sb倍增题"\) 顺便提一下他的[题解](因为按照这个思路写的,所以代码看起来也差不多) 因为比较复(胡)杂(炸),可能需要理解久一点 『题目』 参见 [洛谷 P5024] 『解析』 一.初步思考 如果不考虑多次询问的话,显然可以进行一次简单的树形DP,特殊判断一下当前的点(也就是城市)能不能选(放军队)就行了~ 但是显…
保卫王国 电脑卡懒得把题面挪过来了. 朴素 \[ dp_{i,0}=\sum dp_{s,1}\\ dp_{i,1}=\sum \min(dp_{s,0},dp_{s,1})+p_i \] 然后直接动态dp就行了 我发现lct是最好写的,反正比树剖好写,还比她快 没倍增快,但是看起来倍增挺难写的... Code: #include <cstdio> #include <algorithm> #define ll long long const ll inf=1ll<<4…
题意 题目描述 Z 国有\(n\)座城市,\(n - 1\)条双向道路,每条双向道路连接两座城市,且任意两座城市 都能通过若干条道路相互到达. Z 国的国防部长小 Z 要在城市中驻扎军队.驻扎军队需要满足如下几个条件: 一座城市可以驻扎一支军队,也可以不驻扎军队. 由道路直接连接的两座城市中至少要有一座城市驻扎军队. 在城市里驻扎军队会产生花费,在编号为i的城市中驻扎军队的花费是\(p_i\). 小 Z 很快就规划出了一种驻扎军队的方案,使总花费最小.但是国王又给小 Z 提出 了\(m\)个要求…
「NOIP2018保卫王国」 题目描述 有一棵 \(n\) 个点, 点有点权 \(a_i\),\(m\) 组询问, 每次求钦点两个节点必须选或者必须不选后的树上最小点覆盖. \(1 \leq n, m \leq 10^5\) 解题思路 : 这个题唯一的意义恐怕是普及了一个还不能算太普及的科技,至少我没有时间去实现这个东西.当然 \(\text{nqiiii}\) 大爷考场上写了标算没写这个科技就过了是真的强.(不愧是机房里仅次于 \(\text{AK}\)王\(\text{zzd}\) 的男人)…
Uoj 441 保卫王国 动态 \(dp\) .今天才来写这个题. 设 \(f[u][0/1]\) 表示子树 \(u\) 中不选/选 \(u\) 时的最小权值和,显然有:\(f[u][0]=\sum f[v][1] ,f[u][1]=w[u]+\sum \min(f[v][0],f[v][1])​\) . 现在要资瓷修改 \(x\) 的点权 \(w[x]\) ,容易发现修改后只会影响 \(x\) 到根节点这一条链上的 \(f\) 值.若暴力更新这一条链,在树深度大时,时间复杂度仍是 \(O(nm…