上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
该文被密码保护。 阅读全文
posted @ 2019-08-23 19:17 JBLee 阅读(13) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-08-22 21:08 JBLee 阅读(13) 评论(1) 推荐(0) 编辑
摘要: 题目链接 读题发现,题目里有三种连边方式: 1.两点之间连一条有向边。 2.一个点与给定区间中的点连一条有向边。 3.给定区间中的点和一个点连一条有向边。 剩下的就是跑最短路。 两点之间连边很好处理,但是如何在区间之间连边?按平时链式前向星加边,最坏可能是n方的复杂度,建个边都要死。 这时就有线段树 阅读全文
posted @ 2019-08-21 15:29 JBLee 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接 刘汝佳书上的题目,可以把矩形的每一行都开一棵线段树,最多也就20棵,空间也炸不了。然后就是线段树操作了。 注意:下传的时候最大,最小值也要更新。同样注意标记的优先级顺序。 代码如下: 1 #include<bits/stdc++.h> 2 using namespace std; 3 co 阅读全文
posted @ 2019-08-20 22:25 JBLee 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目链接 其实还是比较好做的,树链剖分现在越来越熟练了。对于这道题来说,所有的部落一开始全部在停战状态,所以它们的边权先初始赋为0,对于一个开战操作,就把链接这两个点的边上的边权赋一个大于0的数,查询时若是有和大于0的时候,我们便认为不能走。如果U停战操作,我们在C的时候要注意保存每一次开战的顺序, 阅读全文
posted @ 2019-08-19 10:14 JBLee 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目链接 偶然在讨论里看到这道题,就进来了。 看了一下发现是求区间的平均数及方差,所以肯定是要用线段树来维护的。区间平均数好求,直接求一遍区间和再除以区间长度就是了。 关键是区间方差的问题,做这题的时候还忘了方差是什么东西,真的sb,初中数学白学了。其实这样也比较可以。 手推一下就能够比较容易地发现 阅读全文
posted @ 2019-08-18 22:58 JBLee 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 题目链接 之前很久的一道题,还是写一写,这道题一眼就是树剖不用说了吧,但是它要同时支持区间赋值和加法操作,所以我们肯定需要两个标记,但是当赋值和加法标记同时下方的时候,就需要我们的细节处理,首先赋值的初始值应该赋为-1,而且下方的时候要先释放优先级高的赋值标记。区间赋值的时候,必须清空之前的加标记! 阅读全文
posted @ 2019-08-18 07:46 JBLee 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目链接 这道题其实还是比较好想的,同样是边权问题。我们需要维护最大值,最小值,和。最坑的地方就是路径上的所有数变相反数,其实这个就是把区间和*-1,区间最大*-1,区间最小*-1,最后pushdown的时候将取反标记^1,接下来一系列都是常规操作。而这里还要记住,单点修改时也要下传lazy标记。而 阅读全文
posted @ 2019-08-18 07:39 JBLee 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目链接 震惊noip被ccf暂停了,不过多半是改个名字什么的。noip的好题还是可以做一做的,这道题的确值得一做,我们看他题上说的是最短的时间是所有经过边权和的最大值决定,也就是说最大值最小,显然的二分答案。由于题目中的关系是一棵树或一条链,所以就可以往这方面想想,可是我就想不到。先打个暴力三十分 阅读全文
posted @ 2019-08-17 11:16 JBLee 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对于这道题,dp是显然的,不过状态设计就比较奇葩,dp[i][j][h][which]表示在第i行,第j列,差值为h,0表示小a,1表示uim。哪一个人which取到了宝物,不用去记录他们两个人的值,维护差值转移即可。如果超过k+1的话,就直接膜就可以了。 初始状态:dp[i][j][a[ 阅读全文
posted @ 2019-08-16 23:32 JBLee 阅读(139) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页