F题
求出L-R中多少个数满足子串是3的倍数
鸽巢原理:长度>3时,一定会重复出现mod 3相等的数字,那么那一段就是3的倍数
只需要计算999以内即可

G题
给出列A,B,交换k次A的不同数字,使得AB对应位置差的绝对值之和最大。
解:可以理解为分配+、-号,满足A和B的+号总和和-号总和相等
n>2,恰好k次和至多k次等价
最优对换解:交换后变优2*[min(ai,bj)-max(aj,bi)]
将所有的min(ai,bi)\max(ai,bi)排序,取前k大相减取和即可。

H
给出n个大小不同的数,找一个最小的模域使他们模数互不相同
解:实质是求最小的m,不是任意一个|ai-aj|的约数。
FFT

I
给出排列P,两个人轮流取数,每次取的数需要在之前该人取数的右边,且比当前取出来所有的数都要大。所有当前可选的数都将等概率随机的被当前决策人选中。问两个人期望取数的轮数。
解:
f[i][j][0/1]表示第一个人上次选了i,第二个人选了j,当前是第1/2个人选
对于f[i][j][0], ai < ak,aj < ak,k > i,f[k][j][0] += f[i][j][1]/cnt,
cnt表示所有ai < ak,aj < ak,k > i的k的数量