Day 12.1模拟赛游记

模拟赛之难,难如上青天!


T1.Catalan

题目大意:求\(n\)个数的序列通过进栈出栈操作后的排列数,其中有\(m\)条约定形如\(x_i\)必须在\(y_i\)后出栈。

想想\(Catalan\)数的递推公式:\(C_n=\sum_{i=0}^{n-1}C_i\times C_{n-i-1}\)。即对于\(n\)个数,枚举最后出栈的数,因为\(i\)为最后一个出栈的数,所以\(1\sim i-1\)的数都已经出栈了,而\(i\)进栈到出栈的序列中又是\(i+1\sim n\)的序列,所以以\(i\)为分界点,两边的方案数相乘即为总方案数。而对于这题,即添加了一些限制,使得某些数不能作为最后出栈的数,比如对于\(x_i\)必须在\(y_i\)之后出栈,那么\(y_i\)就不能作为最后的出栈数。因此,把一个数两边分别作为\(x\)轴和\(y\)轴,那么对于一个限制,就是在这个平面上出现了一些点不能取,用前缀和即可。

T2.team

题目大意:求\(L\sim R\)区间内无重复数字子区间的数量,有修改:将\(a_x\)改为\(y\)

有一个经典的套路,对于每一个数,用\(net_i\)表示第\(i\)个数后面第一个与它数值相等的数的下标。对于一个无重复数字的区间,一定要满足\(\min_{i=l}^r\{net_i\}>r\),因此对于一个\(L\sim R\)的区间,答案就为\(\sum_{l=L}^R min(\min_{i-l}^R\{net_i\},R-1)-L\)。用线段树维护即可。

T3.math

题目大意:给定\(n,m\),求

\[\sum_{i=1}^n\sum_{j=1}^m gcd^n(i,j)\sum_{k=1}^{ij}[i\perp k][j\perp k]*k \]

数论水题,有手就行,大力推柿子即可(可惜我是个残疾人)

T4.xor

\(giao!\)打了\(70\)分的我炸成\(40\),一种植物

posted @ 2020-12-01 22:48  Chester1011  阅读(49)  评论(0编辑  收藏  举报
/*simplememory*/