摘要:
BZOJ4591 并不会写的组合数学。 我们设$f(n, k) = \sum_{i= 0}^{k}\binom{n}{i}$,那么每一个询问要求的就是$f(n, k)$。 发现$f(i, j)$其实可以递推: $f(i, 0) = 1$ $f(i, j) = f(i, j - 1) + \binom 阅读全文
摘要:
一开始还真没想到。 发现从所有有宝藏的点出发绕一圈只要不刻意绕路答案都是一样的,即我们呢要求的最后答案$ans = dis(x_1, x_2) + dis(x_2, x_3) +... + dis(x_{k - 1}, x_k) + dis(x_k, x_1)$。 不刻意绕远路怎么办呢,我们把有宝藏 阅读全文
摘要:
感觉不会期望。 首先把所有格子按照权值从小到大排一下序,这样一共有$n * m$个元素,每个元素有三个属性$x, y, val$。 下文中的下标均为排序后的下标。 这样子我们就可以推出公式: $f_i = \frac{1}{k}\sum_{j = 1}^{k}(f_j + (x_j - x_i)^2 阅读全文
摘要:
类似于树状数组维护区间的方法。 每一次询问要求$\sum_{i = 1}^{n}\sum_{j = 1}^{i}a_j$。 展开一下: $\sum_{i = 1}^{n}\sum_{j = 1}^{i}a_j = \sum_{i = 1}^{n}a_i * (n - i + 1) = (n + 1) 阅读全文
摘要:
被普及组虐了,感觉💊啊。 因为这个子矩阵可以分开取,所以我们可以很方便地把两个子矩阵组合起来。因为$m$很小,所以一行要选哪$j$个可以直接状压起来,但是我们只要$m$个格子选$c$个的方案数,直接用$2^m$来记录会出现很多冗余状态,因为我们选取的所有状态一共只有$\binom{m}{c}$个, 阅读全文
摘要:
挂上Chester大神的解题报告 有一个思维跳跃的地方,就是不应该枚举所有的$B$点,而是应该在选定一个$A$点之后枚举距离计算。 然后我们发现枚举距离是$2^k$的长度就可以了,证明如下: 假如距离$d = 2^k$,那么对于每一个$A$点如果能被经过$a_p$的点弹到,需要满足$a_i\equi 阅读全文
摘要:
主席树+线段树合并。 首先我们想一想如果只有一个结点的话,我们弄一个权值线段树就可以随便维护了。 那么我们可以运用差分的思想,把一个询问拆成四个操作,对于一个询问$(x, y, v)$,我们在$x$的$k$处$ + 1$,在$y$的$k$处$ + 1$,在$lca(x, y)$处$ - 1$,在$f 阅读全文
摘要:
并不会写Kruskal重构树,两个$log$跑得比较卡。 首先考虑一下没有强制在线的要求怎么办,有一个比较容易想到的做法就是先跑一遍最短路,然后把所有边按照海拔从大到小排序,把所有询问的海拔也从大到小排序,然后对于每一个询问$(x, h)$把所有海拔高于$h$的边都连上,然后看一看点$x$的能到达的 阅读全文
摘要:
打牌技术不精,没有把$A$放在顺子里面搜,WA了好长时间。 盗用大佬的一张图: 当时自己搜的时候没有把四张牌拆成三带一等情况。 然后还有一点就是四张三张都出完之后直接数一数剩下的一张两张牌还要多少次出完就好了,没有必要浪费栈空间和递归深度去搜这些东西。(我就是这样T了好多次QωQ)。 要注意暴力算的 阅读全文
摘要:
主席树 + 二分答案。 不容易想到二分答案转化为判定可行性的问题,假设每一次询问的区间是$[x, y]$,长度为$k$,那么假设当前二分到$mid$,我们把原序列中所有大于等于$mid$的值都记一个$1$,其他的位置记为$0$,那么我们看一看$[x, y]$这个区间中最长连续的$1$的个数是不是超过 阅读全文