「shoi 2012」随机数
对于 pass 1, 你把他考虑成 \(\frac{\sum x}{i}\) 的形式, 于是每次操作的贡献就是 \(\frac{2}{i}\), 那么答案就是 \(\sum_{i=2}^n\frac{2}{i}\).
对于 pass 2, 首先由全概率公式 \(\textbf{E}(n)=\sum_{i=0}^{\infty}\textbf{P}(n\geqslant i)\). 那么我们考虑固定 \(k=i\), 求出 \(\textbf P(n\geqslant k)\). 其实直接求这个有点麻烦, 强化一下条件, 我们求 \(\textbf P(n=k)\), 最后后缀和即可取得 \(\textbf P(n\geqslant k)\).
设 \(f(i,j)\) 表示共 \(i\) 个叶结点, 树深度为 \(j\) 时的概率. 对于二叉树我们有一种经典的考虑子结构的方式, 即考虑左子树的信息. 对于此题, 我们考虑左子树 (相对于根结点来说) 的叶结点数量 \(k\). 那么有 \(f(i,\max\{k,l\}+1)\gets f(i,\max\{k,l\}+1)+\frac{f(j,k)\times f(i-j,l)}{i-1}\). 其中 \(i\) 为全树的叶子个数, \(k\), \(l\) 分别为左, 右子树的深度, \(j\) 为左子树的叶结点个数. \(\frac{1}{i-1}\) 是对于一个有 \(i\) 个叶子的二叉树, 有 \(k\) 个结点在左子树的概率, which 与 \(k\) 无关. 至于为什么是 \(\frac{1}{i-1}\), 你考虑操作次数为 \(i-1\) 即可.
#include <bits/stdc++.h>
using namespace std;
typedef double db;
int Q, N;
db f[200][200];
signed main() {
ios::sync_with_stdio(0), cin.tie(0);
cin >> Q >> N;
cout << fixed;
cout << setprecision(6);
if (Q == 1) {
db ans = 0;
for (int i = 2; i <= N; ++i) {
ans += 2.0 / i;
}
cout << ans << "\n";
} else if (Q == 2) {
f[1][0] = f[2][1] = f[3][2] = 1;
for (int i = 4; i <= N; ++i) {
for (int j = 1; j < i; ++j) {
for (int k = 0; k < j; ++k) {
for (int l = 0; l < i - j; ++l) {
f[i][max(k, l) + 1] += f[j][k] * f[i - j][l] / (i - 1);
}
}
}
}
db ans = 0;
for (int i = N; i >= 1; --i) {
f[N][i] += f[N][i + 1];
}
for (int i = 1; i < N; ++i) {
ans += f[N][i];
}
cout << ans << "\n";
}
return 0;
}
「shoi 2012」随机数的更多相关文章
- 「BZOJ 2809」「APIO 2012」Dispatching「启发式合并」
题意 给定一个\(1\)为根的树,每个点有\(c,w\)两个属性,你需要从某个点\(u\)子树里选择\(k\)个点,满足选出来的点\(\sum_{i=1}^k w(i)\leq m\),最大化\(k\ ...
- 「BZOJ 2733」「HNOI 2012」永无乡「启发式合并」
题意 你需要维护若干连通快,有两个操作 合并\(x,y\)所在的连通块 询问\(x\)所在连通块中权值从小到大排第\(k\)的结点编号 题解 可以启发式合并\(splay\),感觉比较好些的 一个连通 ...
- 「BZOJ 2342」「SHOI 2011」双倍回文「Manacher」
题意 记\(s_R\)为\(s\)翻转后的串,求一个串最长的形如\(ss_Rss_R\)的子串长度 题解 这有一个复杂度明显\(O(n)\)的做法,思路来自网上某篇博客 一个双倍回文串肯定当且仅当本身 ...
- Solution -「NOI 2012」「洛谷 P2050」美食节
\(\mathcal{Description}\) Link. 美食节提供 \(n\) 种菜品,第 \(i\) 种的需求量是 \(p_i\),菜品由 \(m\) 个厨师负责制作,第 \(j\) ...
- FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...
- NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立
http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...
- 「C语言」常量和变量的表示、应用和变量命名规则
在程序运行中,其值不能改变的量成为常量. 在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 目录: 一.常量 二.C语言标识符 三.变 ...
- 「学习笔记」Treap
「学习笔记」Treap 前言 什么是 Treap ? 二叉搜索树 (Binary Search Tree/Binary Sort Tree/BST) 基础定义 查找元素 插入元素 删除元素 查找后继 ...
- 前端构建工具之gulp(一)「图片压缩」
前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ...
- fir.im Weekly - 如何打造 Github 「爆款」开源项目
最近 Android 转用 Swift 的传闻甚嚣尘上,Swift 的 Github 主页上已经有了一次 merge>>「Port to Android」,让我们对 Swift 的想象又多 ...
随机推荐
- Linux服务器设置虚拟内存
cd /usrsudo mkdir swapcd swapsudo dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096du -sh /usr/ ...
- 使用默认pypi源出现连接超时
背景信息 安装 dataworks sdk 时报错,原因是连接默认的 pypi 仓库超时 pip install aliyun-python-sdk-dataworks-public==4.2.1 报 ...
- vue中的数据代理
原理:通过vm对象来代理 Vue 中我们自己定义在data中的数据,首先: 我们自己定义的data中的对象或者属性 都会存储到vm中的_data 中进行数据劫持其次: 通过Object.defineP ...
- 深入浅出MySQL - 架构与执行
Photo by Merilin Kirsika Tedder from Pexels 一.MySQL的逻辑架构 MySQL作为一个流行的开源关系型数据库管理系统,它可以运行在多种平台上,支持多种存储 ...
- SpringBoot项目启动 报错:Error executing Maven. end tag name </settings> must match start tag name
SpringBoot项目启动 报错:Error executing Maven. end tag name must match start tag name from line xxx 第一次创建s ...
- ARC118E Avoid Permutations
题意 给定一个长度为 \(n\) 的排列 \(p\),在一个 \((n + 2)\times(n + 2)\) 的网格上,禁止通过 \((i, p_i)\) 这些点,每次只能向上或右走一格,从 \(( ...
- CDI的概念理解
1.CDI是什么?目的和作用是什么? 概念(是什么):是JavaEE 6标准中一个规范, 作用(干什么): 它提供了Java EE平台上服务注入的组件管理核心,简化应该是CDI的目标,让一切都可以被注 ...
- PlayWright(二十一)- Pytest插件报告
1.下载 pytest框架有官方的报告pip install pytest-html 下载成功,那我们怎么使用呢? 2.使用 可以直接在配置文件里使用 在 pytest 配置文件中, 增加 ...
- TodoList - 开源研究系列文章
接着上次的代码,整理出一个待办列表的程序,比较简单易用,读者可自行修改成自己需要的程序. 1. 项目目录: 目录见下图,对代码进行了划分,比较简单.主处理类在Helper目录里. 2. ...
- Avalonia项目在OpenKylin运行踩坑
Avalonia项目在OpenKylin运行踩坑 本篇博客记录OpenKylin开源操作系统中运行Avalonia项目遇到的各种问题,会一直更新,最新的内容请点击文末的链接跳转到我的博客原文地址查看. ...