3984: 玩具(toy)

题目描述

这个故事发生在很久以前,在 IcePrincess_1968 和 IcePrince_1968 都还在上幼儿园的时候。

IcePrince_1968 最近迷上了一种玩具,这种玩具中有两种零件:圆球和棍子。棍子的两头可以插在两个圆球上的各一个空洞中,从而将两个圆球连接起来。为了保证玩具的娱乐性,任意一个圆球上的空洞个数总是多于玩具套装中的棍子数。你可以认为圆球是没有体积的,所有棍子的长度均为 1。

IcePrince_1968 喜欢这样玩这种玩具:他先摸出玩具袋里的一个圆球放在地上,然后重复下面的操作 n-1 次:每次从袋中取出一个圆球和一根棍子,然后等概率的从地上的圆球中选择一个,将该圆球和选择的圆球用棍子连起来,使得新的圆球在选中圆球的正上方。

IcePrince_1968 对自己搭出的艺术品很满意,便决定把这个物品送给 IcePrincess_1968 作为生日礼物。然而生日礼物是需要包装的,因为默认圆球没有体积,所以 IcePrince_1968 不用考虑包装盒的长和宽,但是包装盒的高是需要确定的,这里我们假设 IcePrince_1968 是一个非常节俭的孩子,所以包装盒的高总是等于艺术品的高度。IcePrince_1968 想知道自己需要的包装盒的高的期望对质数 p 取模后的值,但他还在上幼儿园,怎么会算呢,于是就请你来帮助他。

输入

输入数据仅一行,包含两个正整数 n,p,表示最终的艺术品中圆球的个数和模数 p。

输出

输入文件仅一行,一个正整数,表示包装盒的高的期望对质数 p 取模后的值。

样例输入

3 998244353

样例输出

499122178

提示

【输入输出样例 1 解释】

三个圆球组成的艺术品,高度只可能是 1 或者 2,所以高度的期望是 1.5,在模 998244353下的期望是 499122178。

【输入输出样例 2】

见选手目录下的 toy/toy2.in 和 toy/toy2.ans。

【数据规模与约定】

对于 30%的数据,满足 n<=10,p<=1,000,007;

对于 50%的数据,满足 n<=20;

对于 70%的数据,满足 n<=50;

对于 100%的数据,满足 n<=200,p<=1,000,000,007,p 是质数。

来源

noip2018模拟-南外


神题,完全不知道怎么想

考场只会dfs枚举树的形态

O(n!) 30分

算法三

考虑非指数级的dp。令dp[i][j]表示有i个点按照题目中的方法生成的深度为j的树有多少棵,转移用树上背包,要注意子树的深度是可以小于j-1的,但至少要有一棵子树的深度是j-1,所以背包的还要加一个01状态

似乎可以想

算法四

预处理dp[i][j]表示i个点的森林,有j个点在第一棵树的概率,转移考虑第i个点是否在第一棵子树中,我们有状态转移方程

考虑修改算法三中状态的含义,令f[i][j]表示有i个点的树,深度不超过j的概率,g[i][j]表示有i个点的森林,深度不超过j的概率,f[i][j]直接从g[i-1][j-1]转移来;g[i][j]考虑枚举第一棵树的大小k,从一棵树和一个森林转移来,同时还要乘上第一棵子树大小为k的概率,我们有状态转移方程:

具体的细节可以见标程。最后只要f[n][j]-f[n][j-1]就可以得到深度为j的树的概率。

时间复杂度:O(n^3)

转载于:https://www.cnblogs.com/liankewei/p/10358802.html

3984: 玩具(toy)相关推荐

  1. PA10题解报告——玩具(Toy)

    数据结构与算法实验2020夏第二批(中国石油大学) PA10题解报告--玩具(Toy) 目录 题目描述 题目分析 编码实现 一.题目描述 1. 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时 ...

  2. 婴儿摇铃玩具亚马逊审查要求做CPC认证标准要求

    婴儿摇铃玩具外贸出口美国站点需要提交儿童产品CPC证书,由美国消费品安全委员会认可的(CPSC)实验室出具的检测报告,确认每件商品均已经过检测,符合上述法规和标准,才可以上架亚马逊或出口美国市场. 摇 ...

  3. 如何用计算机巧记英语词汇,小学英语单词巧记法

    中图分类号:G622 文献标识码:C 文章编号:1672-1578(2017)01-0206-01 小学英语学科如何帮助学生把枯燥的单词学好.记牢,让他们对英语学习保持着浓厚的兴趣.需要教师采用有效的 ...

  4. Swift 2.2 基础语法

    Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 2014 年,在 Apple WWDC 发布 几家欢喜,几家愁 愁者:只学Object ...

  5. 哪些产品需要CPC认证?常见需要CPC认证的产品及标准CPSC认可实验室CPSIA

    目录 什么是CPC认证 哪些产品需要CPC认证? 不做CPC认证的后果 CPC认证的标准格式 怎么联系正规检测机构 CPC认证审核不通过的原因 最近很多卖家遭遇listing下架,被要求提供cpc认证 ...

  6. Oracle认证OCA最新习题

    1Z0-808 Question 1 Given: public class TestTry { public static void main (String[] args) { StringBui ...

  7. Python学习日记--对付爱看电视的女儿

    神兽回家了不好对付,刚接触Python也写不出什么复杂的程序,不过对付你个小丫头应该够了. 于是就写了这个个小程序: 想看电视,先闯关吧: 二年级的期末考试,最弱的科目是数学和英语,于是决定每天让她复 ...

  8. poj迷宫游戏c语言代码,ACM/ICPC 之 BFS-简单障碍迷宫问题(POJ2935)

    题目确实简单,思路很容易出来,难点在于障碍的记录,是BFS迷宫问题中很经典的题目了. POJ2935-Basic Wall Maze 题意:6*6棋盘,有三堵墙,求从给定初始点到给定终点的最短路,输出 ...

  9. 儿童首饰饰品CPC认证怎么办理?饰品CPC测试项目

    什么是CPC认证 哪些产品需要CPC认证? 不做CPC认证的后果 CPC认证的标准格式 怎么联系正规检测机构 CPC认证审核不通过的原因 最近很多卖家遭遇listing下架,被要求提供cpc认证报告. ...

最新文章

  1. 暑期集训3:几何基础 练习题A: HDU - 2002
  2. JavaScript 对象的遍历以及判断方法
  3. 互联网协议入门(二)
  4. 一文攻破结构体-C语言
  5. linux下面使用cpdf合并pdf
  6. HDU 1402——A * B Problem Plus
  7. CuteChat for Community Server 2.0 beta 3!
  8. 做完自动化测试,但别让不会汇报毁了你...
  9. Android start stop命令使用
  10. Android高级计算器
  11. 软件测试之蚂蚁金服面试题,含答案
  12. GMM估计分析步骤及结果解读
  13. C++之常指针和指向常量的指针
  14. 用php写表格代码,php读写excel表格程序代码
  15. 商务汇报PPT制作的七堂课-第二课:模板制作
  16. Spark 参数说明
  17. 2008-12-29日xp系统补丁导致iis无法启动
  18. VB工程处---百例66--网站页面
  19. Android之路-路漫漫其修远兮
  20. 汇总 | 2023年嵌入式行业方向及公司

热门文章

  1. 如何在Netweaver SE16里直接查看某数据库行记录 1
  2. 2020各大网站rss订阅源地址_RSS订阅器inoreader一些使用心得
  3. matlab中nc文件,MATLAB读取.nc文件
  4. 微服务feignclient_[Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
  5. 系统试运行总结报告_制药行业计算机化系统验证与数据可靠性实施精要
  6. php css错乱,css,html_css多行布局错乱,css,html - phpStudy
  7. sklearn 决策树例子_机器学习|决策树的生成过程是怎样?(一)
  8. c# groupbox大小_【已解决】C#中使得控件随着WinForm窗体的大小改变而自动变化
  9. 玩转嵌入式,且看痞子衡
  10. java输入流读取几行文本_Java基础笔记Day_16