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\) 就是答案了。

posted @ 2025-08-15 19:19  wwwidk1234  阅读(10)  评论(0)    收藏  举报