【luogu CF1153F】Serval and Bonus Problem(期望)(DP)
Serval and Bonus Problem
题目链接:luogu CF1153F
题目大意
长度为 l 的线段,有 n 个区间端点随机分布,然后问你期望有多少长度被至少 k 个区间覆盖。
思路
首先这种随机分布的期望题考虑也把随机的时间弄成一个平均分布。
在这里就是我们可以理解为这 2n2n2n 个端点是均匀分布在 lll 上的,那每段长度就是 l2n+1\dfrac{l}{2n+1}2n+1l。
然后我们就可以考虑 DP,设 fi,jf_{i,j}fi,j 为 iii 个端点,当前有 jjj 个左端点没有匹配。
那没有匹配说明要延伸过去,那只要延伸过去的数量大于等于 kkk,就说明这个段是贡献的。
然后我们考虑每个位置放左端点还是右端点,注意如果是右端点你会选跟哪个左端点,所以要乘上 jjj。
然后你考虑怎么计算答案,你前面保证了这个左端点,那右端点你也应该要保证吧。
那左右端点其实是一样的,所以你可以直接用 DP 的值,就是两个乘起来,然后左右端点匹配是一个阶乘。
然后你前面算的是方案你要除总方案才是概率,然后总方案是 f2n,0f_{2n,0}f2n,0。
然后就可以啦。
代码
#include<cstdio>
#define ll long long
#define mo 998244353using namespace std;const int N = 2005;
int n, k, l;
ll f[N << 1][N], jc[N];ll ksm(ll x, ll y) {ll re = 1;while (y) {if (y & 1) re = re * x % mo;x = x * x % mo; y >>= 1;}return re;
}ll clac(int n, int k) {f[0][0] = 1; ll ans = 0;for (int i = 0; i < 2 * n; i++) {for (int j = 0; j <= i && j <= n; j++) {(f[i + 1][j + 1] += f[i][j]) %= mo;if (j) (f[i + 1][j - 1] += f[i][j] * j % mo) %= mo;}}for (int i = 1; i <= 2 * n; i++)for (int j = k; j <= n; j++)(ans += f[i][j] * f[2 * n - i][j] % mo * jc[j]) %= mo;return ans * ksm(f[2 * n][0], mo - 2) % mo;
}int main() {scanf("%d %d %d", &n, &k, &l); l = l * ksm(2 * n + 1, mo - 2) % mo;jc[0] = 1; for (int i = 1; i <= n; i++) jc[i] = jc[i - 1] * i % mo;printf("%lld", clac(n, k) * l % mo);return 0;
}
【luogu CF1153F】Serval and Bonus Problem(期望)(DP)相关推荐
- [CF1153F]Serval and Bonus Problem(dp/积分+OGF)
其实这道题已经在我的学习笔记里面口胡过了- 但由于某种特殊原因-我写了一篇博客. 题面 Getting closer and closer to a mathematician, Serval bec ...
- luogu P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现) Weblin ...
- CF1153F-Serval and Bonus Problem【dp,数学期望】
正题 题目链接:https://www.luogu.com.cn/problem/CF1153F 题目大意 在有nnn个区间的左右端点在[0,l)[0,l)[0,l)范围内随机,求被至少kkk个区间覆 ...
- Luogu P3251 [JLOI2012]时间流逝 期望dp
题面 题面 题解 期望\(dp\)好题! 今年\(ZJOI\)有讲过这题... 首先因为\(T\)只有\(50\),大力\(dfs\)后发现,可能的状态数最多只有\(20w\)左右,所以我们就可以大力 ...
- poj 2096 , zoj 3329 , hdu 4035 —— 期望DP
题目:http://poj.org/problem?id=2096 题目好长...意思就是每次出现 x 和 y,问期望几次 x 集齐 n 种,y 集齐 s 种: 所以设 f[i][j] 表示已经有几种 ...
- POJ 2096 Collecting Bugs:期望dp
题目链接:http://poj.org/problem?id=2096 题意: 有一个程序猿,他每天都会发现一个bug. bug共有n个种类.属于某一个种类的概率为1/n. 有s个子系统,每个bug属 ...
- 【poj2096】Collecting Bugs 期望dp
题目描述 Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other materia ...
- HDU 6656 Kejin Player (期望DP 逆元)
2019 杭电多校 7 1011 题目链接:HDU 6656 比赛链接:2019 Multi-University Training Contest 7 Problem Description Cub ...
- WJMZBMR打osu! / Easy【期望dp】
>Link luogu P1365 >Description 有一个长度为 n 的仅由ooo,xxx,???三个字符组成的字符串 设字符串的分数为:其中长度为 aaa 的只包含 ooo 的 ...
- [洛谷 1365] WJMZBMR打osu! / Easy {期望DP}
题目 https://www.luogu.org/problemnew/show/P1365 解题思路 这是我做的第三道期望DP.跟前两道的不同之处,在于它连续的一段具有不确定性且没有给出n的范围.所 ...
最新文章
- 永远不要去依赖别人_读书心得马琴:永远不要依靠别人来保证你的安全读后感...
- linux 命令行启动虚拟机
- 在soa工程中使用dubbo的步骤
- 【数据库系统】SQL修改的注意事项
- C# 获得两日期之间所有月份(包括跨年)
- leetcode题解66-加一
- Toast-Android 专属浮动小提示
- Fedora Linux虚拟机常用开发工具
- 项目如何开始:怎样和客户谈需求(转)
- linux 程序 减肥,程序减肥三步走
- 遗传算法原理与应用详解
- icd11中文版精神障碍pdf_精神与行为障碍类别目录(ICD-11)(借鉴资料)
- vue json对象转数组_vue-vue-router 快速了解,多看看能扎实基础
- 四大垃圾回收算法七大垃圾回收器
- 心情是一盏温茶的宁静
- 检查xml写的格式是否正确的方法
- deep learning编程作业总结1---喵咪识别
- Android大作业跑酷游戏《Android studio》
- Word文档如何压缩?这几个方法压缩率超高,不破坏排版
- 四轮毂电机车身姿态相关的传感器及其运用
热门文章
- 【SHOI2008】【BZOJ1023】cactus仙人掌图
- commit规范使用gitmoji全流程 cz-customizable+commitlint+husky+conventional-changelog
- Python判断字符串中连续最长的递增英文字母串
- PCF8591 A/D转换模块
- 360 路由器设置 虚拟服务器,360安全路由器的设置方法
- CCIE实验笔记之---第1章WAN协议(HDLC)
- 自监督学习(一):基于 Pretext Task
- 台币nbsp;日元nbsp;没有小数位问题
- android app怎么给界面加背景图,想做一个Android app,但是背景不能铺满整个页面,不知道大家是用什么样的图片?...
- Redis和消息队列