JSTSC2015二轮

来源:互联网 发布:qq手机备份软件 编辑:程序博客网 时间:2024/04/29 18:33

真是一场奇怪的省选,有的算法考得重复,有的算法还未涉及,不知该说些啥。。。。。

Day1

T1、子集选取

我只能说,这是一道地地道道的noip题,不管你是用什么方法搞出公式的,最后的答案就是2^(n*k)

我就说一下自己是怎么得到的吧。

题目中要求Ai,j属于Ai-1,j和Ai,j-1,我们知道属于关系对于元素之间是相互独立的,如果我们知道单个元素的方案数为x,答案就是x^n

考虑如何求x(直接dp很简单,60分),看下面的图:


不难得到,答案就是从黄点出发,只能向上向右走,到达红点中的任意一个数的方案数之和

有组合公式可知方案数为Ck,0+Ck,1+Ck,2+......+Ck,k

简单的公式,所以x=2^k,最终答案为x^n=(2^k)^n=2^(n*k)

T2、送礼物

看到体面上的公式:卧槽,在哪看过?

dlh大神怒用斜率dp搞定,弱弱的我只好默默地用二分。

先处理出特殊情况:长度恰好为L的,可以用单调队列搞出每个长度为L的区间内最大值和最小值,记下答案(其实这个地方蒟蒻写得有问题,不过数据水,居然过了安静)。

接下来我们来二分答案

假设我们二分出一个t,检验其是否可行。可以看出,选出的a[l...r]一定满足a[l]和a[r]中一定有都是最值。

先假设a[r]是最小值,得到(a[j]-a[i])/(i-j+K)>=t,化简得a[j]+j*t>=a[i]+i*t+K*t

令b[i]=a[i]+i*t,得到b[j]>=b[i]+K*t,同样可以用单调队列维护。

a[r]是最大值的情况同理可得。

注意卡卡精度

复杂度O(nlogn)

T3、字符串树

看到题目:卧槽,这是什么玩意儿,这可做?

然后看到数据范围,字符长度<=10:卧槽,这题目还要做?裸的主席树吧。。。

没有了。。。。

Day2

T1、非诚勿扰

第i个女生选择她的第j个如意郎君的期望概率是p*(1-p)^(j-1)/(1-(1-p)^s),s为她的全部如意郎君数

用树状数组计数啥的即可。

T2、套娃

先假设没有套娃相互嵌套,ans=Sigma(in[i]*b[i])

考虑有嵌套的情况,可以肯定我们要用价值大的配对外径大的,也就是说我们按价值从大到小处理,每次找到一个能放入的未被用过的外径最大的套娃嵌入

我们需要一个数据结构支持查找删除,线段树平衡树皆可。

T3、投影面积

计算几何不多说了,处理情况多且复杂。

wkw大神用分割光线的方法大约能拿70分,跪!


1 0
原创粉丝点击