20211014省选组总结
因为不想打细节题所以滚来写总结了
这套题面过度玩梗。。。
T1 Hello my friend
题意:树上每个点有黑白两种颜色,如果是黑色则每次走到都有贡献,白色则只有一次贡献,问从点 \(1\) 开始的期望。
(定位是签到题,然而爆零。。。)部分分的提示非常明显
考虑将黑白两种颜色分开做,黑色是经典题目(指不知道叫什么),每个点 \(f_u\) 的表达式都可以写作 \(f_u = k_u f_{fa} + b_u\) 的形式,用这个形式一直转移到 \(1\) 即可, \(b_1\) 即是答案,若是白色点则不计算贡献,将表达式中的 \(+1\) 去掉。
白色的话就是求每个点被到达的概率,维护 \(f_x\) 、 \(g_x\) 分别表示 \(x\) 走到 \(fa_x\) 和 \(fa_x\) 走到 \(x\) 的概率, \(DP_x\) 表示到达 \(x\) 点的概率,像换根DP一样求即可。
注意有两个数据是不符合题目所给 \(d_1>1\) 的条件的( \(d_x\) 为点 \(x\) 的度数)。
T2 Try to find out the wrong in the test
题意:将一个序列分成一些连续的区间,每个点有一个 \(L_i\) 、 \(R_i\) 表示该点所在区间的大小上、下限,要求分出的区间最多,并求出方案数。
首先 \(n^2\) DP是显然的嘛,然后考虑优化。
这个整个是不具有单调性的。。。不要卡死在一个点上了。。。
但是满足 \(R\) 条件的区间是具有单调性的,因此可以对于每个点维护出 \(Left_i\) 表示能转移到该点的最左点,可以用单调队列实现。
然后考虑分治,每次将 \(L\) 最大的点作为分治中心,设该点为 \(L_k=c\),用左边更新右边。
此时我们就知道了每个区间的最小长度,
根据 \(Left_i\) 给 \(i\) 分成 \(Left_i \le l\) 、 \(l < Left_i < k\) 和 \(k \le Left_i\) 三段,
最后一段没有贡献,中间的贡献区间不确定,暴力转移,
前面的一段我们发现有 \(i \le k+1-c\) 和 \(i > k+1-c\) 之分,前者相邻两个 \(i\) 之间的贡献区间只差 \(i-c+1\) 这一个,对于第一个用线段树求解后可直接更新;后者每一个的贡献区间都是一样的,将答案标记打到整个满足条件的区间上即可。
T3 【JSOI2015】投影面积(light)
题意:平面上有一个屏幕和一个光源,还有若干个反射或阻挡的障碍物,求屏幕被照亮区域的占比。
将光线分离成几十万条后暴力判断是否可以到达屏幕。
暴力细节题。。。恶心坏了