2023 CCPC 华为云计算挑战赛 D-塔

首先先来看第一轮的

假如有n个,每轮那k个

他们的高度的可能性分别为

n 1/C(n,k)

n+1 C(n-(k-1+1),1)/C(n,k)

n+2 C(n-(k-2+1),2)/C(n,k)

n+i C(n-(k-i+1,i)/C(n,k)

通过概率和高度算出第一轮增加的期望

然后乘上m轮增加的高度加上初始高度,就是总共增加的高度

下面是题解写的过程

cpp 复制代码
const int inf = 0x3f3f3f3f3f3f3f3f, N = 2e5 + 5, mod = 998244353;
int qpow(int a, int b) {
	int res = 1;
	while (b) {
		if (b & 1) res = res * a % mod;
		b >>= 1;
		a = a * a % mod;
	}
	return res;
}
int fpow(int x, int r) {
	int result = 1;
	while (r) {
		if (r & 1)result = result * x % mod;
		r >>= 1;
		x = x * x % mod;
	}
	return result;
}

namespace binom {
	int fac[N], ifac[N];
	int __ = [] {
		fac[0] = 1;
		for (int i = 1; i <= N - 5; i++)
			fac[i] = fac[i - 1] * i % mod;
		ifac[N - 5] = fpow(fac[N - 5], mod - 2);
		for (int i = N - 5; i; i--)
			ifac[i - 1] = ifac[i] * i % mod;
		return 0;
	}();

	inline int C(int n, int m) {
		if (n < m || m < 0)return 0;
		return fac[n] * ifac[m] % mod * ifac[n - m] % mod;
	}

	inline int A(int n, int m) {
		if (n < m || m < 0)return 0;
		return fac[n] * ifac[n - m] % mod;
	}
}
using namespace binom;//求解排列组合
signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	int T;
	cin >> T;
	while (T--) {
		int n, m, k;
		cin >> n >> m >> k;
		int fen = qpow(C(n, k), mod - 2);
		int ans = 0;
//		cout << C(3, 3) << '\n';
		ans = (ans + n * fen) % mod;
		for (int i = 1; i <= k; i++) {
//			cout << "------\n" << n - (k - i)-1 << ' ' << (k-i) << "\n" << "---------\n";
//			cout << C(n - (k - i) - 1, i) << '\n';
			ans = (ans + ((n+i) * fen) % mod * C(n - (k - i+1), i) % mod) % mod;
		}
		int w = (ans - n + mod) % mod;
		cout << (n + w * m % mod) % mod << '\n';
	}
}
相关推荐
gtchendong4 天前
探索MySQL8.0隐藏特性窗口函数如何提升数据分析效率
华为云
山,离天三尺三11 天前
基于LINUX平台使用C语言实现MQTT协议连接华为云平台(IOT)(网络编程)
linux·c语言·开发语言·网络·物联网·算法·华为云
yuxb7321 天前
华为云学习笔记(1):ECS 实例操作与密钥登录实践
笔记·学习·华为云
yuxb7321 天前
华为云学习笔记(四):运维类服务与企业网站上云实践
笔记·学习·华为云
喵手22 天前
Java中的大数据流式计算与Apache Kafka集成!
java·华为云·apache
big\hero22 天前
基于STM32设计的智能手环(ESP8266+华为云IOT)
stm32·物联网·华为云
俺俺23 天前
(50)elasticsearch服务部署-有状态负载(华为云平台CCE)
elasticsearch·华为云·es·cce·有状态负载
九河云24 天前
华为云 ELB:智慧负载均衡,让您的应用永葆流畅体验
运维·服务器·科技·华为云·负载均衡
华为云开发者联盟1 个月前
版本速递 | 华为云Versatile智能体平台 新增特性介绍(2025年9月发布)
华为云·华为云versatile
九河云1 个月前
华为云 GaussDB:金融级高可用数据库,为核心业务保驾护航
网络·数据库·科技·金融·华为云·gaussdb