首页 > 其他分享 >0901-T2 笼中鸟

0901-T2 笼中鸟

时间:2024-09-01 20:03:39浏览次数:8  
标签:int 笼中鸟 T2 次数 0901 众数 dp

0901-T2 笼中鸟

题意

给出正整数 \(n,k\)。

求长度为 \(k\),每个数都是 \([1,n]\) 中的随机正整数的序列的众数的出现次数的期望值乘以 \(n^k\) 后的结果。

35pts 思路

定义 \(dp_{i,j,p}\) 表示考虑前 \(i\) 种数,长度为 \(j\),众数出现次数为 \(p\) 的序列个数。

转移方程:

\[dp_{i,j,p}=\sum_{m=0}^{p-1}dp_{i-1,l-m,p}\times C_{j}^{m}+\sum_{m=0}^{p}dp_{i-1,l-p,m}\times C_{j}^{p} \]

左侧的求和式子表示新来的数不是众数,枚举 \(m\) 表示新来的数的出现次数,\(C_{j}^m\) 表示在当前 \(j\) 个位置中选出 \(m\) 个放新来的数。

右侧的求和式子表示新来的数是众数,则出现次数为 \(p\),枚举 \(m\) 表示上一个众数的出现次数,\(C_{j}^{p}\) 表示再当前 \(j\) 个位置中选出 \(p\) 个放新来的数。

注意左右两个求和式子在 \(m=p\) 时值相等,所以只有一边能取到 \(p\),另一边只能取到 \(p-1\),不然会算重复。

35pts 代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 205;
const int mod = 998244353;
int n, k, C[N][N];
int dp[N][N][N], ans; 
signed main() {
	cin >> n >> k;
	C[0][0] = 1;
	for (int i = 1; i <= 200; i ++) {
		C[i][0] = 1;
		for (int j = 1; j <= 200; j ++) 
			C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % mod;
	}
	for (int i = 0; i <= n; i ++) dp[i][0][0] = 1;
	for (int i = 1; i <= n; i ++) {
		for (int l = 1; l <= k; l ++) {
			for (int j = 1; j <= min(k, l); j ++) {
				for (int m = 0; m < j; m ++) 
					dp[i][l][j] += dp[i - 1][l - m][j] * C[l][m] % mod, dp[i][l][j] %= mod;
				for (int m = 0; m <= j; m ++)
					dp[i][l][j] += dp[i - 1][l - j][m] * C[l][j] % mod, dp[i][l][j] %= mod;
			}
		}
	}
	for (int i = 1; i <= k; i ++) ans = (ans + dp[n][k][i] * i % mod) % mod;
	cout << ans << "\n"; 
	return 0;
}

标签:int,笼中鸟,T2,次数,0901,众数,dp
From: https://www.cnblogs.com/maniubi/p/18391640

相关文章

  • 20240901_151114 python 项目 获取需要的视频
    需求有一个视频素材目录当中有很多的视频现在需要根据音频素材的时长获取需要的视频内容编程完成项目把生成的视频存放在结果目录中分析音频的时长不同所需要的视频个数也不同视频的长度不同需要对每一个视频进行等时长的截取(例如每个视频只截取3秒钟)用户有可能一次提......
  • 20240901_161659 编程剪辑项目列表
    资料20240901_161503编程剪辑相关列表_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11889402项目20240901_151114python项目获取需要的视频_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11889375......
  • 20240901-究竟是为什么呢
    其实我不是很愿意在博客里发这些的,有被教练发现的风险,也有可能会给大家带来负面情绪。但是我真的太想要有人理解我了,真的好破防啊。我真的在控制我发负面情绪的文章了啊。。。。。。以后还是尽量不发吧。。。写完了之后觉得写成这样子没人能理解,等明天情绪稳定了来改改吧。......
  • 20240901_113250 python 知识点列表
    开发环境20240901_113224python环境依赖的备份与导入_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/1188873020240901_114639填空题环境的备份与导入_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11888767......
  • 20240901_113224 python 环境依赖的备份与导入
    20240830_173845python当前环境依赖包导出到文件中_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/1187710920240830_183845python从依赖包记录文件中批量安装包_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11877185......
  • 「NOI2022 D2T2 冒泡排序」题解
    题意uoj768构造长为\(n\)的序列\(a\),满足\(m\)条限制:\(\min_{j=L_i}^{R_i}\{a_j\}=V_i\),要求逆序对数最少题解21pts暴力先进行一些观察:逆序对只关心相对大小,所以\(\foralla_j\)必然\(\in\{V_i\}\),可以完全离散化经典结论:若\(i<j,a_i>a_j\)且交换后合法,则交换......
  • ROS2 Moveit2 - moveit_resources_panda_moveit_config包简介
    moveit_resources_panda_moveit_config是一个在MoveIt框架中常用的资源包,包含了Panda机器人模型(FrankaEmikaPanda)的配置文件。这个包用于测试和演示MoveIt的功能。它通常包含以下内容:URDF/XACRO文件:描述Panda机器人的几何、动力学和运动学模型。SRDF文件:描述Pand......
  • Cat2Bug仅这1个功能,让你的Bug解决效率提升3倍
    Bug存活时间越长,代表效率过低。Cat2Bug-Platform的这个功能恰好解决的这个问题。非常Nice!!存活时长功能包括:“Bug的创建、状态变更、存活时长计算”。1、Bug的创建新的Bug提交:系统自动记录创建时间。2、状态变更在Bug的整个生命周期中,支持权限所有者更改其状态:“Open/Close......
  • Mint21配置固定IP不生效
    rambo@p360:~$ipashenp6s02:enp6s0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscfq_codelstateUPgroupdefaultqlen1000link/etherc8:5b:76:82:24:c0brdff:ff:ff:ff:ff:ffinet192.168.2.104/24brd192.168.2.255scopeglobaldynami......
  • T240829 【用Liouville定理证明代数学基本定理】
    [T240829]代数学基本定理:在复平面上次数大于\(1\)的一元多项式至少有一个零点.引理(Liouville)有界整函数\(f(z)\)必为常数.证:设\(|f(z)|\)有上界\(M\).即\(\forallz\in\C,~|f(z)|\leM\).于是由Cauchy不等式,对\(\foralla\in\C\),有\[0\le|f'(a)|\le......