摘要: 这道题很好想, 离线, 按询问的x排序从小到大, 然后用并查集维护连通性, 用平衡树维护连通块的山的权值, 合并就用启发式合并.时间复杂度的话, 排序是O(mlogm + qlogq), 启发式合并是O(nlog²n), 询问是O(qlogn).---------------------------... 阅读全文
posted @ 2015-07-23 23:22 JSZX11556 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 对于每个点都跑最短路, 然后我们得到了个DAG, 在这DAG上更新每条边的答案.考虑e(u, v)∈DAG对答案的贡献: 假设从S到u得路径数为A[u], 从v出发到达任意点的路径数为B[v], 那么e(u, v)的答案可以加上A[u] * B[v](显然). A可以按拓扑序递推得到, B可以通过记... 阅读全文
posted @ 2015-07-23 22:01 JSZX11556 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 每一连通块砸开一个就可以拿到所有的钱, 所以用并查集求连通块数-------------------------------------------------------------------#include#define rep(i, n) for(int i = 0; i > n; ans ... 阅读全文
posted @ 2015-07-23 13:08 JSZX11556 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 枚举每个长度为k的区间, 然后用平衡树找中位数进行判断, 时间复杂度O(nlogn).早上起来精神状态不太好...连平衡树都不太会写了...果断去看了会儿番然后就A了哈哈哈----------------------------------------------------------------... 阅读全文
posted @ 2015-07-23 12:29 JSZX11556 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 一开始写了个RMQ然后就T了...好吧正解是单调队列, 维护两个单调队列...--------------------------------------------------------------------------------#include#define rep(i, n) for(i... 阅读全文
posted @ 2015-07-23 00:17 JSZX11556 阅读(298) 评论(0) 推荐(0) 编辑