上一页 1 ··· 50 51 52 53 54 55 56 57 58 ··· 73 下一页
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 就是莫队算法; 先写了个分块,惨WA: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #in 阅读全文
posted @ 2018-06-13 22:49 Zinn 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2442 设 f[i] 为答案,则有 f[i] = max { f[j] - s[j+1] } + s[i] ; 所以用单调队列维护 f[i] - s[i+1]; 没有1A!!原因是遍历的起点不是 阅读全文
posted @ 2018-06-13 20:04 Zinn 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3046 就是多重集组合数(分组背包优化); 从式子角度考虑:(干脆看这篇博客) https://blog.csdn.net/viphong/article/details/48110525 从意义的角度来考虑: 当 j<=a[i] 时,f[ 阅读全文
posted @ 2018-06-13 14:39 Zinn 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1588 使用双向链表! 离线做,先抽出来排个序,按排序确定每个位置的 pre 和 nxt ,然后倒序查找,找完一个就删除一个值,更改 pre 和 nxt。 代码如下: 阅读全文
posted @ 2018-06-13 08:08 Zinn 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.luogu.org/problemnew/show/P3004 似乎有点博弈的意思,但其实是DP; f[i][j] 表示 i~j 的最优结果,就可以进行转移; 注意两个循环的顺序,要先算出 i+1 ,但要用之前的 j-1 ,所以一个倒序一个正序。 代码如下: 阅读全文
posted @ 2018-06-12 19:25 Zinn 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.luogu.org/problemnew/show/P1527 整体二分,先把所有询问都存下来; 然后二分一个值,小于它的加到二维树状数组的前缀和里,判断一遍所有询问,就分出了这些询问的答案是否大于这个值; 然后分组递归下去求解即可; 注意加二维树状数组的那个nw是全局 阅读全文
posted @ 2018-06-12 17:03 Zinn 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1503 虽然是平衡树裸题,但一直TLE,只好改了insert和move的写法... 本来想着每次降工资就把工资-det加进去,转到根节点,然后把小于它的都删掉,再把它也删掉这样... 而且连in 阅读全文
posted @ 2018-06-12 14:41 Zinn 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4811 因为位运算的结果有可合并性,所以可以树链剖分,线段树维护; 细节很多,特别要注意从左往右运算和从右往左计算是不同的,在不同条件下一定要区分!!! 这篇博客写得很好(我就是模仿它写的):h 阅读全文
posted @ 2018-06-12 09:29 Zinn 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1018 线段树竟然还可以这样用! 维护的是一个矩形内部的连通情况,四个顶点之间有6种连通方式; 因为连通情况具有可合并性,所以可以用线段树来维护! 这篇博客写得很好:https://www.cn 阅读全文
posted @ 2018-06-11 20:41 Zinn 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2002 第一次用分块,感觉超方便啊; 如果记录每个点的弹力系数,那么是O(1)修改O(n)查询; 如果记录每个点几次被弹飞,那么是O(n)修改O(1)查询; 那么如果分成根号n块,则相当于每块都 阅读全文
posted @ 2018-06-11 17:33 Zinn 阅读(146) 评论(0) 推荐(0) 编辑
上一页 1 ··· 50 51 52 53 54 55 56 57 58 ··· 73 下一页