上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 30 下一页
该文被密码保护。 阅读全文
posted @ 2021-07-06 11:20 __Anchor 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-06-28 19:18 __Anchor 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 题目 给定n,k和一个长度为n的序列,求最长的最大值最小值相差不超过k的序列 分析 可以直接双指针+RMQ来维护,复杂度是 \(O(nlogn)\) 的(约束RMQ爬)。 这里讲一个单调队列的思路。 维护两个单调队列,一个单调上升,一个单调下降。 然后每加入一个元素先更新两个队列,然后看一下两个队首 阅读全文
posted @ 2021-06-25 20:34 __Anchor 阅读(46) 评论(0) 推荐(1) 编辑
摘要: 题目 给定一个无向图,保证从1号点到所有点的最短路只有一条,现在对于每一个点询问:如果把1号点到这个点的最短路径的最后一条边断掉,那么到这个点的最短路变成了多少? 分析 首先我们发现最短路只有一条,其实就是在提示我们建出最短路树。 那么现在每一条树外面的边其实就有各自的贡献,对于一条边,它可以更新$ 阅读全文
posted @ 2021-06-25 20:28 __Anchor 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 析合树模板题的加强,变成了每次区间询问。 考虑容斥,也就是我们这里只要算中间被完全包含的那一段区间的所有子树和左右边界的右左的一部分。 具体见题解。 代码 #include<bits/stdc++.h> using namespace std; template<typename T> 阅读全文
posted @ 2021-06-25 20:14 __Anchor 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 析合树题。 首先这样“每行每列恰好一个棋子”的条件是很明显的说这是一个排列。 然后$k\times k$的矩阵这个条件再分析一下就容易得出这是指我们需要找出一个连续区间。 那么把矩阵转化成数组,然后就是析合树模板题了。 代码 #include<bits/stdc++.h> using n 阅读全文
posted @ 2021-06-25 20:11 __Anchor 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题目 分析 析合树模板题。 先建出析合树。 就是要统计这样的点对的个数,那么在析合树上其实就是对于每一个点这样统计: \(1.\) 对于合点:任意两个儿子之间可以任意选择,那么方案加上 \(num\times (num-1)/2\) \(2.\) 对于析点:任何两个儿子都不能选,于是只有它本身这个节 阅读全文
posted @ 2021-06-25 20:08 __Anchor 阅读(40) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-06-25 16:48 __Anchor 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-06-25 09:34 __Anchor 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-06-23 23:26 __Anchor 阅读(0) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 30 下一页