模拟115 题解

A. Tiny Counting

考虑枚举$a$,可以直接用树状数组查找合法的$b$,

接着直接乘逆序对个数就好了。

然而这个时候就存在一些非法的状态,$b$作为逆序对出现了。

所以只要再枚举一遍$b$,减掉对应的贡献就好了。

 

 

 

B. Medium Counting

因为要颓,改不出来了

 

 

 

C. Huge Counting

$f$函数可以转化为由点$(1,1,1,1...)$到达给定点的方案数的奇偶性。

然后发现这个东西其实是类似组合数的形式。

首先考虑二维形式,即组合数的奇偶性,即$\frac{(a+b)!}{a!b!}%2$的取值。

考虑将分子分母中的质因子$2$提出。

存在质因子$2$,仅当将$a,b$分别质因子分解,对位相加存在进位。

这个证明还简单的,直接用那个提质因子的式子就能搞出来。

因为二进制的形式比较简单,所以直接数位$dp$就好了。

为了$dp$的过程中不考虑左边界,一个很好的方法是容斥。

posted @ 2019-11-14 20:33  skyh  阅读(261)  评论(0编辑  收藏  举报