上午的计数题QAQ

LJQ来讲题辣
然后就开始D人辣QAQ
题目1.
n 个点的有根树。
每次操作,随机选择一个结点,把以它为根的整个子树删去。
一直到删完为止。
问操作次数的期望。

n <= 100.
题解:
操作次数的期望 = deli=i
deli=11depi+01depi1
然后我们就知道操作次数的期望是多少了。
LJQ:这题我当时两分钟就想出来了。

题目2.
n 个灯的开关排成一排。最初,所有灯是关的。
每次操作,随机选择一个至少两个开关的区间 (l, r),改变区间中所有灯的开关状态(选择任何区间的概率等于 1/C(n,2))。
问 m 次操作以后亮着的灯的数目的期望。

n <= 103 , m <= 109 .
题解:
考虑总期望 = m
我们考虑第i盏灯操作一次:

Fi=i(ni+1)C2n

操作两次的话同理,最后的式子通过矩阵乘法加速即可。

题目3.
n 个人玩石头剪刀布。
每个人每个回合随机出招。若一个回合能分成胜负两方则分开,分开后两方各自继续游戏。直到分成 n 个人时游戏结束。
求期望的游戏回合总数。

n <= 500.

题解:
用F[i]代表i个人玩的期望回合总数。

F[i]=j=0iP(i,j)(F[j]+F[i]+1)

注意就是j = 0的时候要解方程,嗯这就没了。

题目4.
n 个点、m 条边的无向图,点 1 为迷宫出口。
你随机出生在某个点。每次操作,可以移动到一个相邻的结点,也可以选择随机传送到某一个结点(有可能仍在原先结点)。
问最优策略下到达出口步数的数学期望。

n, m <= 105 .
题解:
考虑最优策略一定是出现在某个临界点上,我们暴力找这个临界点肯定是能找的出来的,到时候就是对于比临界点优的,期望步数就是最短路,比临界点差的,F(i) = P(m,n) * (前面所有的比临界点优的这些东西的和的平均值) +1+ P(n - m,n) * F(i)
再解方程即可。

题目5.
平面上有 n 个点,问有多少个三元组组成:
1. 直角边平行于坐标轴的等腰直角三角形;
2. 斜边平行于坐标轴的等腰直角三角形。

n<=105.

题解:分块,处理每条直线即可。

题目6.
n 个点的无根树,每个点上有一些权值。
q 次询问。要么修改某个权值 xi,要么将某个权值移动到另一个点上,要么询问一条路径上最大的 k 个权值。

n,m<=4104q<=105k<=20xi<=103.

题解:
树链剖分肯定是可以做的,问题在于可不可以乱搞个其它的。
LJQ表示可以,他表示二维树状数组 + dfs序 比树链剖分好写。
反正我是觉得树链剖分比较好写……

题目7.
n 行 m 列的地图,每个格子上有个 0..20 之间的整数。
每个格子与上下左右四连通。
问有多少条恰好 21 个格子的路径,使得 0..20 在路径上分别出现一次。

n, m <= 21.
题解:
折半搜索,用空间换时间,这样的话就可以搞了。

题目8.
P 校有 n 个新生,学号为 1 ~ n。以及 m 个社团。
社团活动日,第 i 个社团会给学号为 ai, ai + ci, ai + ci * 2, …, ai + ci * ki 的新生发传单。
已知恰好有一个学生收到的传单数为奇数。请问是谁?

n,m<=106.
题解:
详情见秦腾的某某计划,北京冬令营原题,思路是二分答案+前缀和。

题目9.
公司的 A 部门招聘 n1 人,B 部门招聘 n2 人。
n 个人来应聘。经过面试,对每个人有四个评估分数:q1, q2, c1, c2。
你要决定录取哪 n1+n2 个人以及分到哪个部门,使得
(∑q1 + ∑q2) / (∑c1 + ∑c2) 尽量大。
即分到 A 部门的 n1 个人的q1 之和加上分到 B 部门的 q2 之和,除以对应的 c1、c2 之和最大。

1 <= n1+n2 <= n <= 500,
1 <= c1, c2 <= 50,1 <= q1, q2 <= 2000.
题解:
考虑分数规划,二分答案之后然后背包,嗯……和背包很像。
然后复杂度是 O(n3) 的,考虑进行优化:
等等让我吐槽!
LJQ当时过来问我有没有多项式做法,我本来想说分数规划+DP,然而感觉好虚就没有说,感觉非常冤TAT
那个……这个好像是可以优化的,我们考虑把其中一个权值进行排序,然后降掉DP的一个状态即可,即f[i][j]表示前i个选了j个进A。
嗯……就这样QAQ

题目10.
狐狸叫(划掉):
有只狐狸在坐标 (0, 0) ,必须跳恰好 r 步到坐标 (tx, ty)。
设一步从 (x, y) 跳到 (x+dx, y+dy),则须满足 0 <= dx <= mx,0 <= dy <= my, 且 dx, dy 不能同时为 0。
此外,存在若干个数 bad[1..n],每次跳时 dx 和 dy 不能同时等于任意一个 bad[i]。
问方案数,模10,007。

n <= 50,tx, ty, mx,my, bad[i] <= 800,r <= 1600.

题解:
等等让我再吐个槽:
LJQ:如果不考虑Bad[i]你有什么好的方法吗?
我:就是暴力加一下……也没有什么的啊……
(我指的暴力加一下是:暴力DP加前缀和优化啊QAQ)
LJQ(满脸无奈):那坐标小于50你会做吗?
我当时的内心os:”???这不是不改也能过的吗?”
于是我很奇怪地说:还是暴力加一下啊……
LJQ:呃你不会统计方案数吗?
我的内心更懵逼了:”这我不是说了暴力加一下了吗?”
于是我没有说话
然后过了一会听到我前面那个小哥回答的跟我的一模一样……
嗯只不过我认为那是暴力DP……
呃……
论不能跟FSF等人在一起讨论题从而导致什么DP都变成暴力DP的重要性。
不扯多了我们继续。
在没有bad的情况下,用f[i][j][k]表示第k步到达(i,j)的方案数。
肯定可以转移对吧。
然后我们前缀和优化一发。
但问题是有bad……
嗯这样的话我们考虑容斥原理,考虑:
Total - 走至少一步bad + 走至少两步bad - 走至少三步bad ……
g[i][j]表示前i个bad里走的x坐标为j的方案数。
走至少k步bad: C(r,k) * balabala,然后统计下就好了。
今天的题目到此结束,谢谢大家的收听。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值