2025 暑假集训 Day8
2025.8.12
树形 DP & 概率期望
树形 DP
T1 没有上司的舞会(洛谷 P1352)
经典树形 DP 题目。首先原题中的上司下司关系可以转化成一棵树,设 \(dp(u,1/0)\) 表示以 \(u\) 为根的子树且 \(u\) 选/不选的最大快乐值,然后对于 \(u\) 有两个决策,要么 \(u\) 选要么不选,然后就有转移方程(\(v\) 为 \(u\) 的儿子) \(dp(u,1)=\max\limits_{v \in son(u)}\{dp(v,0)\}\)(根节点选了那么儿子一定不能选)\(dp(u,0)=\sum\limits_{v \in son(u)}\max\{dp(v,0),dp(v,1)\}\)。
核心代码:
void dfs(int u,int fa)
{
dp[u][1]=r[u];
for(int v:g[u])
{
if(v==fa) continue;
dfs(v,u);
dp[u][0]+=max(dp[v][0],dp[v][1]);
dp[u][1]+=dp[v][0];
}
}
T2 电子眼
机房有 \(n-1\) 条过道和 \(n\) 个编号为 \(1 \sim n\) 的结点,每条过道连接两个结点,每条过道上有一个座位。每两个结点之间最多只有一条过道。教练准备在结点处装电子眼以防止颓废。每个电子眼可以监控它所连接的过道。求最少需要在多少个结点安装电子眼才能监视所有的电脑。\(n \le 10^5\)(题面有魔改)
和 T1 没有上司的舞会差不多,考虑每个点放不放电子眼,如果这个点不放那么和它相邻的点就必须放,不然就会监视不到这两点之间的边。设 \(dp(u,1/0)\) 表示 \(u\) 这个点安装/不安装电子眼的最小花费,转移就是(\(v\) 是 \(u\) 的儿子) \(dp(u,0)=\sum dp(v,1),dp(u,1)=\sum \min\{dp(v,0),dp(v,1)\}\)。
memset(dp,0x3f,sizeof dp);
void dfs(int u,int fa)
{
dp[u][1]=1;
dp[u][0]=0;
for(int v:g[u])
{
if(v==fa) continue;
dfs(v,u);
dp[u][0]+=dp[v][1]; //这个点不放那么相邻的点必须放
dp[u][1]+=min(dp[v][1],dp[v][0]); //这个点选了那么相邻点可选可不选
}
}
概率期望
T1 硬币游戏
在这个游戏中有一个硬币还有一张桌子,这张桌子上有很多平行线(如下图所示)。两条相邻平行线之间的距离是 \(1\),硬币的半径是 \(r\),然后我们来抛硬币到桌子上,抛下之后硬币有时候会和一些直线相交(相切的情况也算是相交),有时候不会。计算一下抛一次硬币之后,该硬币和直线相交数目的期望。\(r \le 10^{10}\)
可以发现硬币和平行线相切的概率无线接近于 \(0\) 可以忽略不计,硬币的直径 \(d=2r\) 就是答案了。

浙公网安备 33010602011771号