07 2018 档案
摘要:1047 思路: 二维单调队列 先用单调队列预处理出每个位置在这一行往前n个位置的最大值最小值,然后O(n^2)扫过去,对列用单调队列
阅读全文
摘要:1010 思路: 斜率优化dp s[i]表示1-i的前缀和 斜率不等式为: 对于 i < j < k (dp[j] - dp[k] + (j + s[j])^2 - (k + s[k])^2) / ((j + s[j]) - (k + s[k])) <= 2*(i + s[i] - l -1)
阅读全文
摘要:斜率优化是单调队列优化的推广 用单调队列维护递增的斜率 参考:https://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html 以例1举例说明: 转移方程为:dp[i] = min(dp[j] + (sum[i] - sum[j])^2
阅读全文
摘要:F - Xor-Path 思路: 双向搜索dfs 如果普通的搜索复杂度是n 那么双向搜索复杂度是√n 代码:
阅读全文
摘要:E - Number Clicker 思路:双向搜索 代码:
阅读全文
摘要:E - Lomsat gelral 思路1: 树上启发式合并 代码: 思路2: dfs序+分块 求区间众数和 代码:
阅读全文
摘要:F - Dominant Indices 思路:树上启发式合并 先跑轻子树,然后清除轻子树的信息 最后跑重子树,不清除信息 然后再跑一遍轻子树,重新加回轻子树的信息 由于一个节点到根节点最多有logn个轻边,所以复杂度为nlogn 代码:
阅读全文
摘要:5787 思路: 数位dp
阅读全文
摘要:C - Sky Full of Stars 思路: 容斥原理 题解:http://codeforces.com/blog/entry/60357 注意当i > 1 且 j > 1,是同一种颜色 代码:
阅读全文
摘要:单调队列:队列中元素单调递增或递减,可以用双端队列实现(deque),队列的前面和后面都可以入队出队。 单调队列优化dp: 问题引入: dp[i] = min( a[j] ) ,i-m < j <= i 普通的做法是O(nlogn),但是当n很大是,这个复杂度就不行了,考虑用单调队列优化来达到O(n
阅读全文
摘要:1833 思路:数位dp 代码:
阅读全文
摘要:E2 - Median on Segments (General Case Edition) 思路: 首先我们计算出solve(m):中位数大于等于m的方案数,那么最后答案就是solve(m) - solve(m+1) 那么怎么计算sovle(m)呢? 对于一个区间[l,r],如果它的中位数大于等于
阅读全文
摘要:F - Berland and the Shortest Paths 思路: bfs+dfs 首先,bfs找出1到其他点的最短路径大小dis[i] 然后对于2...n中的每个节点u,找到它所能改变的所有前驱(在保证最短路径不变的情况下),即找到v,使得dis[v] + 1 == dis[u],并把u
阅读全文
摘要:Equal Cut 思路: 枚举中间那个分界点,然后两边找使得切割后差值最小的点,这个可以用双指针 代码:
阅读全文
摘要:沙僧 思路: dfs序+差分数组 分层考虑,通过dfs序来查找修改的区间段,然后用差分数组修改 代码:
阅读全文
摘要:1088 思路: 模拟,确定第1和2格后所有的格子都能确定 代码:
阅读全文
摘要:C - Two Squares 思路: 点积叉积应用 代码:
阅读全文
摘要:2242 思路:BSGS+逆元 代码:
阅读全文

浙公网安备 33010602011771号