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';
	}
}
相关推荐
开开心心_Every4 天前
发票批量打印工具支持双面预览页面方向设置
游戏·微信·pdf·华为云·excel·语音识别·googlecloud
TracyCoder1234 天前
解读华为云Redis Proxy集群规格:架构、规格与带宽性能
redis·架构·华为云
江湖有缘4 天前
华为云之基于鲲鹏服务器部署打砖块小游戏全流程
服务器·华为云·github
开开心心_Every6 天前
家常菜谱软件推荐:分类齐全无广告步骤详细
linux·运维·服务器·华为od·edge·pdf·华为云
九河云7 天前
数字韧性时代,华为云CBR为业务连续性注入“免疫基因”
大数据·人工智能·安全·机器学习·华为云
zhangfeng11338 天前
华为云ModelArts「大模型部署 & 微调」指南
人工智能·华为云
智慧化智能化数字化方案8 天前
向华为学习——解读华为云安全白皮书 2025【附全文阅读】
学习·安全·华为云·华为云安全白皮书
嘴贱欠吻!9 天前
Kuikly搭建OpenHarmony教程02:使用华为云真机运行项目
华为云
Goway_Hui9 天前
【开源鸿蒙跨平台开发--KuiklyUI--02】华为云真机部署实战指南
华为·开源·华为云·harmonyos·kuikly
qq_3863226910 天前
华为云Stack 解决方案技术
华为云