共 18 页: 上一页 1 2 3 4 5 6 下一页 末页
摘要:题目链接 "【BZOJ】" "【洛谷】" "【LOJ】" 题解 由于是前序遍历,那么讨论一棵树上的逆序对的情况。 两个节点都在左子树上 两个节点都在右子树上 两个节点分别在不同的子树上。 前两种情况其实也可以归结于第三种情况。 原因 因为两个节点不可能占据一个位置。 根据容斥原理,为了保证答案的正确 阅读全文
posted @ 2019-04-28 15:32 chhokmah 阅读 (38) 评论 (0) 编辑
摘要:题目链接 "【洛谷】" 题解 很明显是要用线段树合并的。 对于当前的每一个连通块都建立一个权值线段树。 权值线段树处理操作中的$k$大的问题。 如果需要合并,那么就线段树暴力合并,时间复杂度是$nlogn$,均摊下来就是$logn$。 判断联通性的问题就用并查集来解决。 如果在同一个联通块里,就不能 阅读全文
posted @ 2019-04-28 10:49 chhokmah 阅读 (23) 评论 (0) 编辑
该文被密码保护。
posted @ 2019-04-28 10:31 chhokmah 阅读 (9) 评论 (1) 编辑
摘要:题目链接 "【洛谷】" 题解 来做一下水题来掩饰ZJOI2019考炸的心情QwQ。 很明显可以线段树。 维护两个值,$Lazy$懒标记表示当前区间是否需要翻转,$s$表示区间还有多少灯是亮着的。 那么每一次翻转,$s$就变成了$n s$,$n$表示区间内所有灯的数量。 线段树维护一下就可以了。 代码 阅读全文
posted @ 2019-04-27 18:39 chhokmah 阅读 (22) 评论 (0) 编辑
摘要:A 水题一道。 题目的大致意思就是:给你两个集合,求集合间有多少数对和是奇数。 题解,开$4$个桶后,求一个$min$就可以了。 cpp include using namespace std; int n, m; int v1[4], v2[4]; int main() { scanf("%d%d 阅读全文
posted @ 2019-04-25 13:52 chhokmah 阅读 (60) 评论 (5) 编辑
摘要:题目链接 "【洛谷传送门】" 题解 按位处理。 把每一位对应的图都处理出来 然后单调栈处理一下就好了。 $and$操作处理全$1$。 $or$操作处理全$0$。 代码 cpp include define gc getchar using namespace std; typedef long lo 阅读全文
posted @ 2019-04-23 10:11 chhokmah 阅读 (32) 评论 (0) 编辑
摘要:分数出来了:$0+20+0$,自闭 阅读全文
posted @ 2019-04-22 22:43 chhokmah 阅读 (208) 评论 (5) 编辑
摘要:"【bzoj数据下载地址】" 不要谢我 先讲一下窝是怎么错的。。。 $MLE$是因为数组开小了。。 看到异或和最大,那么就会想到用线性基。 如果不会线性基的可以参考一下我的学习笔记: "「线性基」学习笔记and乱口胡总结" 但是这一道题目需要合并线性基。 如何合并线性基? 不需要什么花里胡哨的操作, 阅读全文
posted @ 2019-04-22 10:57 chhokmah 阅读 (28) 评论 (0) 编辑
摘要:还以为是什么非常高大上的东西~~花了1h不到就学好了~~ 线性基 线性基可以在$O(nlogx)$的时间内计算出$n$个数的最大异或和(不需要相邻)。 上述中$x$表示的最大的数。 如何实现 定义$p[i]$表示在二进制下从最高位开始第一个出现$1$的数。 当前我们将一个数插入线性基中。 如果$x$ 阅读全文
posted @ 2019-04-22 08:58 chhokmah 阅读 (47) 评论 (0) 编辑
摘要:题目链接 "【洛谷传送门】" 题解 很显然,当这个点不是割点的时候,答案是$2 (n 1)$ 如果这个点是割点,那么答案就是两两被分开的联通分量之间求组合数。 代码 cpp include define ll long long using namespace std; const int N = 阅读全文
posted @ 2019-04-21 19:14 chhokmah 阅读 (28) 评论 (0) 编辑
共 18 页: 上一页 1 2 3 4 5 6 下一页 末页