Loading

CF1925D

Solution

发现我们并不关下每一组人到底是哪些人。

不妨从 dp 的角度去考虑这个问题。

p=2/(n×(n1))dpi 为选了 i 组人后期望得到的友谊值。

i 次选人,有 1p×m 的概率选中不是朋友的一组人。

xj 为此时第 j 组的期望友谊值。

可以得到方程:

dpi=dpi1+(1p×m)×0+j=1mp×xj

现在考虑怎么求出 xj

假设一组初始友谊值为 t, fi 表示经过 i 次之后友谊值的期望。

对于一组好朋友,每次有 p 的概率被选中,友谊值增加 1,有 1p 的概率不被选中,友谊值不变,于是得到:

fi=fi1+p×1+(1p)×0

不难发现 fi=t+i×p

xj=fj+(i1)×p。此时 fj 的含义为题目所给。

得到:

dpi=dpi1+p×j=1m(fj+(i1)×p)

dpi=dpi1+p×(j=1mfj+m×(i1)×p)

s=i=1mfi

dpi=dpi1+p×(s+m×(i1)×p)

直接做即可,时间复杂度 O(n)

void solve() {
	LL n, m, k;
	cin >> n >> m >> k;
	Z s = 0, p = (Z)2 / (n * (n - 1));
	for(int i = 0; i < m; i ++) {
		int a, b;
		Z c;
		cin >> a >> b >> c;
		s += c;
	}
	Z f = 0, g = 0;
	for(int i = 0; i < k; i ++) {
		f = g + p * (s + m * (Z)i * p);
		g = f;
	}
	cout << f << '\n';
}
posted @   Svemit  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示