摘要: 假设排列为 \(p_0,p_1,\ldots,p_{n-1}\) 定义 \[c_i=\#\{j>i\mid p_j<p_i\}, \]也就是第 \(i\) 个位置后面,有多少个数比 \(p_i\) 小。 排列的字典序排名(从 \(0\) 开始)为 \[\boxed{\operatorname{ran 阅读全文
posted @ 2026-10-11 15:09 bjq521 阅读(2) 评论(0) 推荐(0)
摘要: 首先对于一个子树 \(i\) ,非常明显的,它每一层的子节点的权值和都要 \(<=w_i\) ,肯定可以长剖dp但我不会做截断。不过考虑这个对 \(w_i\) 做截断,本质是一个区间推平,然后发现随着子节点层级的加深,权值和肯定是不增的,那截断就成了一个前缀推平。这样就可以上链表维护了,直接用链表记 阅读全文
posted @ 2026-10-10 12:50 bjq521 阅读(2) 评论(0) 推荐(0)
摘要: 这种确定一个中心点必须要放一个 \(L\) 型联通块,非常重要的一个转化就是,把相邻的四个点分成相对的两组每组必须选一个,这是等价的。然后发现变成了什么,对于每个中心点把每组的两个点连一条边,最后建成图,于是最后转化为“为每个边都匹配一个端点,有些端点被ban了,每个端点只能用一次的方案数”。只需要 阅读全文
posted @ 2026-10-10 12:39 bjq521 阅读(4) 评论(0) 推荐(0)
摘要: 考虑直接模拟栈的过程。 设 \(dp_{l,r,mn,mx}\) 表示对于 \(A\) 数组 \(l\) , \(r\) 的区间内,值域为 \([mn,mx]\) 能组成的最长 \(LIS\) 长度。每次扩展肯定是往左一格扩展,也就是考虑 \(l\) 这个位置怎么处理。 \(l\) 直接删掉,\(d 阅读全文
posted @ 2026-10-08 23:28 bjq521 阅读(1) 评论(0) 推荐(0)
摘要: nim游戏的小变形。 观察到每一行有两种类型:相向而行、背道而驰。 如果都是相向而行,那就是简单的nim游戏,直接 \(dp_{i,j}\) 表示 \(i\) 行的异或和是 \(j\) 的方案数就做完了。 那考虑背道而驰会带来什么影响,那就是互不影响一格一格消耗就是了,所以会影响“先后手问题”! 设 阅读全文
posted @ 2026-10-08 23:15 bjq521 阅读(1) 评论(0) 推荐(0)
摘要: 题目没有要求 \(X\) 的元素个数之类的,导致 \(X\) 的限制非常少,注意到“限制是性质”,这也意味着 \(X\) 的性质非常少,我们不好下手,转而看 \(A\) 。非常自然的想法就是容斥dp,把 \(S\) 放到 \(A\) 的最后一个元素,令 \(dp_i\) 表示目前 \(X\) 的和等 阅读全文
posted @ 2026-10-08 16:04 bjq521 阅读(4) 评论(0) 推荐(0)
摘要: 注意到N,C极小,所以 \(T = \prod{每种颜色的数量}\) 最大是\(10^{11}\)级别(把N拆分成3和2的乘积形式),于是可以直接暴力折半搜索,每边的乘积不超过$ \sqrt{T}$,可以直接搜索了。 然后考虑合并两边 \(a\) 和 \(b\) ,也就是所有 \(c=a_i \op 阅读全文
posted @ 2026-10-08 14:52 bjq521 阅读(2) 评论(0) 推荐(0)