DTOJ 4793. 通用测评号

2024-03-08 23:18
文章标签 通用 测评 dtoj 4793

本文主要是介绍DTOJ 4793. 通用测评号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

完成清扫银河计划带来的信心并不能让跳蚤们的航天科技突飞猛进,你看不到任何用现有的工质发动机技术完成环银河系航行的可能性。但这时,章北蚤向你展示了最新的通用测评号恒星级宇宙飞船 —— 它拥有最新一代的工质发动机,全功率推进时,理论上可以加速到光速的千分之五。

为了实验通用测评号的实际效果,你被安排给通用测评号装填燃料。通用测评号上有 n n n 个燃料舱,初始时均为空。一个燃料舱被填满时可以储藏 a a a 单位的燃料。但为了完成本次实验,只需要每个燃料舱装填至少 b b b 单位的燃料即可。

装填燃料是个非常无聊的事情,因此你每次会等概率随机选一个没有满的燃料舱,并且在其中放入 1 1 1 单位的燃料,直至所有燃料舱均包含至少 b b b 单位的燃料。

但是由于设计上的失误,一个燃料舱被填满 a a a 单位的燃料后,该燃料舱与发动机连接的管道由于压力过大会坏掉。章北蚤发现了这个问题,他想估计坏掉的管道数量,所以想请你算一算期望有多少个燃料舱被填满了。

为了避免实数计算带来的浮点误差,你只需要输出答案对 998244353 998244353 998244353 取模后的结果。

测试点编号 n , a ≤ n,a\le n,a特殊性质
1 1 1 5 5 5
2 2 2 10 10 10
3 3 3 30 30 30
4 4 4 50 50 50 b = 1 b=1 b=1
5 5 5 50 50 50
6 6 6 100 100 100 b = 1 b=1 b=1
7 7 7 100 100 100
8 8 8 150 150 150
9 9 9 200 200 200
10 10 10 250 250 250

对于所有测试数据,满足 1 ≤ n ≤ 250 , 1 ≤ b < a ≤ 250 1 \le n \le 250,1 \le b<a \le 250 1n250,1b<a250

题解

说一下我的劣质做法(被卡常了自闭了,为什么好不容易有个想法都不让人过啊)。

考虑用每一种情况的填满的燃料舱个数乘上它的概率计算出期望,而每一种情况相当于一个序列,为了方便把一种燃料舱看作一种颜色,这个序列即为 n n n种颜色各自出现了 [ a , b ] [a,b] [a,b]次,其中最后一个的颜色出现恰好 b b b次的序列,它的贡献为出现了 a a a次的颜色数。

注意到概率比较麻烦,每个位置的概率为 1 / 在 它 以 及 之 前 还 未 出 现 a 次 的 颜 色 数 1/在它以及之前还未出现a次的颜色数 1/a。首先枚举出现 a a a次的颜色数,考虑先对剩下的出现 [ a , b − 1 ] [a,b-1] [a,b1]次的颜色计算排列的方案数,为了避免重复,我们按照每个颜色最后一次出现的位置从前往后排序,最后再乘上阶乘表示颜色可以交换,这个用一个简单的DP即可: f [ i ] [ j ] f[i][j] f[i][j]为前 i i i种颜色组成长度为 j j j的序列的方案数,转移时枚举当前颜色的次数,乘上组合数即可。直接做的效率是 O ( n 4 ) O(n^4) O(n4)的,显然可以用 n t t ntt ntt优化到 O ( n 3 l o g n ) O(n^3logn) O(n3logn)

考虑对这个序列插入出现次数为 a a a的颜色,并乘上概率就是答案。对于次数为 a a a的那些颜色,还是按照最后一次出现的位置,为了方便计算,我们从后往前考虑,每次考虑插到哪个位置,后面的那些数的概率就知道了。这个再用一个DP计算即可: g [ i ] [ j ] g[i][j] g[i][j]为长度为 i i i的序列插入后后面的每个数概率为 1 / j 1/j 1/j的概率,枚举插入的位置即可(注意这里插入后面的数就直接删掉因为没用了,且为了保证顺序不能插到整个序列的末尾)。这里直接做的效率是 O ( n 5 ) O(n^5) O(n5)的,显然可以用 n t t ntt ntt优化到 O ( n 3 l o g n ) O(n^3logn) O(n3logn),由于这个 l o g log log 17 17 17,又是 n t t ntt ntt的,显然过不去并且不会优化自闭了。

这篇关于DTOJ 4793. 通用测评号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788746

相关文章

最便宜的8口2.5G网管交换机! 水星SE109 Pro拆机测评

《最便宜的8口2.5G网管交换机!水星SE109Pro拆机测评》水星SE109Pro价格很便宜,水星SE109Pro,外观、接口,和SE109一样,区别Pro是网管型的,下面我们就来看看详细拆... 听说水星SE109 Pro开卖了,PDD卖 220元,于是买回来javascript拆机看看。推荐阅读:水

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

j2EE通用jar包的作用

原文:http://blog.sina.com.cn/s/blog_610901710101kx37.html IKIKAnalyzer3.2.8.jar // 分词器 ant-junit4.jar // ant junit antlr-2.7.6.jar // 没有此包,hibernate不会执行hql语句。并且会报NoClassDefFoundError: antlr

通用内存快照裁剪压缩库Tailor介绍及源码分析(一)

背景 我们知道内存快照是治理 OOM 问题及其他类型的内存问题的重要数据源,内存快照中保存了进程虚拟机的完整的堆内存数据,很多时候也是调查其他类型异常的重要参考。但是dump出来的堆转储文件.hprof往往很大,以 LargeHeap 应用为例,其 OOM 时的内存快照大小通常在512M左右,要有效的存储和获取都是一个问题。 线下拿到hprof文件相对容易,也可以预防OOM,但覆盖的场景十分有

SpringBoot中利用EasyExcel+aop实现一个通用Excel导出功能

一、结果展示 主要功能:可以根据前端传递的参数,导出指定列、指定行 1.1 案例一 前端页面 传递参数 {"excelName": "导出用户信息1725738666946","sheetName": "导出用户信息","fieldList": [{"fieldName": "userId","fieldDesc": "用户id"},{"fieldName": "age","fieldDe

数据结构(邓俊辉)学习笔记】排序 5——选取:通用算法

文章目录 1. 尝试2. quickSelect3.linearSelect:算法4. linearSelect:性能分析5. linearSelect:性能分析B6. linearSelect:性能分析C 1. 尝试 在讨论过众数以及特殊情况下中位数的计算方法以后,接下来针对一般性的选取问题,介绍优化的通用算法。 既然选取问题的查找目标就是在整个数据集中按大小次序秩为 k

c++通用模板类(template class)定义实现详细介绍

有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int { public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y; } int min( ) { return (x&... 有时,有两个或多个类,其功能是相同的,仅仅是数

等保测评中的安全审计与监控

等保测评中的安全审计与监控是确保信息系统安全的关键环节。安全审计主要通过记录和审查用户活动、系统操作及安全事件来帮助管理员及时发现潜在的安全威胁和漏洞。监控则涉及对信息系统的持续观察,以确保安全措施得到有效执行,并能够及时响应安全事件。         在等保测评中,安全审计的要求包括提供覆盖到每个用户的安全审计功能,保证无法单独中断审计进程,无法删除、修改或覆盖审计记录,以及提

网络安全评测评技术与标准

网络安全测评概况 概念 参照一定的标准规范要求,通过一系列技术和管理方法,获取评估对象网络安全状况信息,对其给出相应网络安全情况综合判定 测评对象:信息系统的组成要素或信息系统自身 CC(Common Criteria)标准:提出了“保护轮廓”概念,将评估过程分为“功能”和“保证”两部分,是目前最前面的信息技术安全评估标准 网络安全测评类型 网络安全测评流程与内容

等保测评:如何构建安全的远程工作环境

在构建安全的远程工作环境时,等保测评是一个重要的参考标准。根据等保测评的要求,企业应采取以下措施来确保远程工作环境的安全性: 身份鉴别和访问控制:确保所有远程访问都通过双向身份验证机制,并实施基于角色的访问控制策略,以限制对敏感资源的访问。 数据加密:对传输和存储的数据进行加密,以防止数据在传输过程中被窃取或在设备上被未授权访问。 安全审计:收集和分析审计数据,以监控和记录