其他分享
首页 > 其他分享> > 省选模拟四十三 题解

省选模拟四十三 题解

作者:互联网

T1

设D(L,R)代表A组中都大于等于L,B组中都小于等于R的方案数

那么枚举最小值T,D(T,T)-D(T+1,T)便是最小值为T的答案

考虑D(L,R)该怎么求

首先把a,c数组排序

设f[i]代表前k个里有f[i]个满足a[x]+c[i]>=L,g[i]代表后n-k个里有g[i]个满足a[x]+c[i]<=R

假设选出了c序列是b1,b2,b3...bk

那么答案就是$$\prod_{i=1}^{k}(f[b[i]]-(k-i))*\prod_{i=1}^{n-k}(g[d[i]]-1)$$

dp解决即可

T2

考虑用倍增+RMQ求出$L(2^k,x),R(2^k,x)$代表从x走2^k步向左/右最远到哪里

之后二分答案mid

假如存在(x,y)使得L(mid-1,y)>x并且R(mid-1,x)<y则合法

预处理一下L的后缀最大值即可O(n)解决

T3

神奇的割圆术可以解决本题,边数2000左右

标签:组中,省选,题解,mid,最小值,代表,答案,四十三,prod
来源: https://www.cnblogs.com/AthosD/p/12469693.html