摘要: 嘟嘟嘟 题中给的$k$有点别扭,我们转换成$a > b$的对数是多少,这个用二元一次方程解出来是$\frac{n + k}{2}$。 然后考虑dp,令$dp[i][j]$表示前$i$个数中,有$j$对满足$a > b$的方案数,转移的时候考虑这一组是否满足$a > b$即可:\(dp[i][j] = 阅读全文
posted @ 2019-06-05 19:05 mrclr 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 前几天学了一下二项式反演的证明,咕了几天后觉得还是发一篇博客比较好。 二项式反演,就是这么个式子: $f(n) = \sum _ {i = 0} ^ {n} C_{n} ^ {i} g(i) \Leftrightarrow g(n) = \sum _ {i = 0} ^ {n} ( 1) ^ {n 阅读全文
posted @ 2019-06-05 17:32 mrclr 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 看题目这个架势,就知道要线段树,又看到维护联通块,那就得并查集。 所以,线段树维护并查集。 然而如果没想明白具体怎么写,就会gg的很惨…… 首先都容易想到维护区间联通块个数和区间端点两列的点,然后就是区间合并了。 关键在于pushup,线段树是自底向上的,而并查集是自上而下的,因此,每到达一 阅读全文
posted @ 2019-06-05 15:14 mrclr 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 此题以前觉得不可做的原因是当时组合数方面几乎啥也不会,现在对这题算是理解了(然而还是看了题解)。 因为$c \leqslant 20$,因此可以把每一个$c$的答案都存下来,即每一个节点开一个长度为20的数组,$f[i]$表示当前区间选$i$个数相乘的所有方案和。 1.区间取反。 那么偶数项 阅读全文
posted @ 2019-06-05 09:09 mrclr 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 看到这题,我第一反应就是NOIP2019D1T2:我会单次$O(n ^ 2)$dp! 然后我就想怎么优化这个dp,以及怎么解决从全局变成区间这个问题…… 自然gg了! 换一个思路。 我们先想一个暴力的做法:先把$[L, R]$的数从小到大排序,维护一个$x$,表示$[1, x]$的数都能被凑 阅读全文
posted @ 2019-06-05 08:40 mrclr 阅读(223) 评论(0) 推荐(0) 编辑