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$的过程中不考虑左边界,一个很好的方法是容斥。