联考4

T1

看名字就知道是跟卡特兰数有关系,于是我当时就打了一个dp暴力就跳了?并且我现在看不懂我的\(N^2dp\) 了。

算卡特兰数的时候是记横坐标为放的左括号数量,纵坐标为放的右括号数量,那么合法的括号序列其实就意味着从\((0,0)\)走到\((n,n)\)并且不碰\(y=x+1\)这条直线的方案数,因为碰到的话就至少有一个不能匹配的括号对了。

这题其实也是一样,只是改成只能有\(m\)个括号对未匹配而已,那么可以先差分一下,答案就是不超过\(m\)个括号对未匹配的方案数减去不超过\(m-1\)个括号对未匹配的方案数,如果不超过\(m\)个括号未匹配,那么其实就是不能碰到直线\(y=x+m+1\),所以将路线翻折一下就能得到这种路线唯一对应一条到达\((n-m-1,n+m+1)\)的路径,
所以最后答案就是\(C^{n-m}_{2n}-C^{n-m-1}_{2n}\),注意折线法的应用。

T2

数学的魅力来了

直接二项式定理展开算,时间复杂度有点高所以注意卡常。

T3

观察得到结论,最后剩下的数一定是中间的两到三个数之一。

先假设序列为偶数,那么最后一定是想要大数的那个人结束战斗,所以设\(mid=1+n>>1\),则答案为\(max(a[mid],a[mid+1])\),不可能是别的数,因为假设是别的数\(x\),如果\(x\)比中间那个数大,想要小数的就会把它取走,否则另一个人取走。

那序列为奇数呢?第一个人拿走一个数后就是偶数序列了,并且拿走的数一定且只能是最左边的或者是最右边的,如果是最左边的,那么剩下的序列中,最后一个取的人是想要小数的,答案为\(min(a[mid],a[mid+1])\),否则为\(min(a[mid],a[mid-1])\),因为第一次选择是想要大数的人选择,所以二者取\(max\)

如果提前拿走数的话,就是移动了中心,可以求出中心移动的范围然后构造一个新数列于是就成了RMQ问题。

T4

也要得出结论,当且仅当\(\sum_{i=1}^n\frac{1}{2^{a_i}}<1\)玩家会赢,所以就完了。。

博弈论的题要找找规律推推结论。

posted @ 2020-10-04 16:15  An_Fly  阅读(88)  评论(0编辑  收藏  举报