ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ZLOJ练习22总结

2022-07-31 22:00:24  阅读:153  来源: 互联网

标签:期望 22 可以 练习 叶子 ZLOJ 深度 递推 转移


written on 2022-06-22

\(A\) 题

题目描述

出太阳了。小宝要出去晒太阳,打算在太阳下睡个午觉,家对面有一个n*m的空地,有些地方已经放了东西。他打算把他的小床,放到这块空地上。

他的小床是1*2的。可是小T需要他在指定的区域内,小宝想知道,他有多少种方法,放他的小床。

输入格式

第一行两个整数n和m,表示空地的大小。

接下来n行,每行m个字符,‘#’表示有其他的东西,在这块地上,‘.'表示这块地是空的。

接下来一个整数q,表示询问的个数。

接下来q行,每行4个整数,x1,y1,x2,y2,表示询问区域的左上角点坐标和右下角点坐标。

输出格式

对于每个询问,输出小宝在这个区域内放床,有多少种方案。

相对较水,当然需要先大胆尝试然后再小心调整,很明显这是一个很类似于前缀和的操作,可以分别对于行和列进行操作,然后对于边界,特判一下是否需要排除掉第一个不能与前面一个构成小床的字符的影响。CODE.


\(B\) 的题意转化后,即为求最长公共子序列的方案数,注意转移的正确性、使用高精度、使用滚动数组优化这些细节。CODE.

UPD:一开始我直接用最长公共子序列的方案数来计算了,但是这题因为保证了 \(lenb\leq lena\),这样的话转移方程就不用那么麻烦,可以用链接里的那种方式转移(还可以保证时间复杂度)。另外这题在洛谷上还要用压位高精来卡常。。


先看 \(D\) ,题意

分两个子问题,我们先看第一个。

随机事件的期望(书面) 等价于 该随机事件在“平均状态”下是多少(口语)。

节选自蓝书

有了这样一个结论,就可以直接利用递推的方法来求期望了。

设 \(E_i\) 表示叶子节点为 \(i\) 个时,其平均深度的期望值。可以在脑中模拟一下新添一个叶子节点的过程,那么就有 \(E_i=(E_{i-1}\times (i-1)+1+E_i+1)\div i\),化简结果略。注意,这里的话,由引用的话,我们在实际解题时不妨假设所有的叶子,深度均为平均值 \(E\),这样就可以方便地推出递推式了。

然后注意边界,只有一个根节点时,其深度为 \(0\)(由题目),即 \(E_1=0\)。

第二个问题要复杂一些,思考一下,这个子问题能否用递推的方法获解呢?我们发现,一次“展开”操作,它使树深度的变化量不像第一个问题那样固定,但是同样的,我们可以先思考(模拟)树的变化过程。在思考的过程中,我们可以得出这样一些很小的结论:

  1. 某一棵子树的叶子节点数等于两个儿子的叶子结点数信息的和。

  2. 因为一次操作,它的深度变化不是很固定,那么我们可以采用类似树形dp的思想。记 \(f_{i,j}\) 表示叶子数为 \(i\),深度为 \(j\) 的期望(注意这个定义,后续会更改成更好的),转移肯定是从两个子树中来,转移方程就是 \(f_{i,j}=f_{t,j-1}+f_{i-t,dep},dep\in [1,j)\)。

当然这是错误的,因为这里的期望指的是深度的期望,因此不能简单相加,中间还会有许多额外的步骤,分析过于麻烦,于是我们修改定义,记 \(f_{i,j}\) 表示叶子数为 \(i\),深度为 \(j\) 的概率,这样就可以让概率直接相加了。

为了保证时间复杂度,所以我们再修改一下定义,记 \(f_{i,j}\) 表示叶子数为 \(i\),深度 \(\geq j\) 的概率,这样的话,利用一下容斥,某一个位置从两边转移而来,还要减去重复的部分,因此转移方程就变成 \(f_{i,j}=f_{t,j-1}+f_{i-t,j-1}-f_{t,j-1}\cdot f_{i-t,j-1}\)了,总时间复杂度为 \(O(n^3)\),能过。


\(C\) 题也是一道期望题,在此之前,先总结一下求期望的几种一般方法:

  1. 运用定义,期望 \(=\) 概率 \(\times\) 贡献,一般可以先用dp求出概率(如 \(D\) 第二问)。

  2. 计算每一个特殊位置对答案的贡献。

  3. 运用递推,模拟一次的变化过程,因为期望是线性的,因此可以保证递推的正确性(如 \(D\) 第一问)。

现在我们再利用 \(3\) 来解决 \(C\) 的部分分。

将原序列排序,将元素从小到大一个一个插入统计贡献。为什么排序后再操作是正确的呢?即使不是这样从小到大插入,最后的情况是固定的,因此结果与过程是无关的。枚举第 \(i\) 个数,插入时前面有 \(j\) 个元素,很容易可以写出递推式:\((E_i=E_j+(j+1)+E_{i-1-j})\div i\),\(E_1=1\),于是获得解答。

需要注意的是,期望从 \(k\) 种情况转移而来,就要相应的除以 \(k\)。

满分做法是 \(2\),细节较多,此处略去(其实是因为思路太巧妙,个人认为比赛时根本想不到。。

标签:期望,22,可以,练习,叶子,ZLOJ,深度,递推,转移
来源: https://www.cnblogs.com/Freshair-qprt/p/16538265.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有