摘要: 树的直径+单调队列 这竟然和bzoj1999是一样的? 我们yy一下,发现这条路径肯定在树的直径上,然后就好办了,我们维护一个双指针,保证长度<=s,然后最大距离就是直径的两端到路径的两端的最大值,还有当前路径上挂着的链,这个我们dfs一下就行了,然后直径两端的最大值直接求就行了,链的最大值维护一个 阅读全文
posted @ 2017-09-16 08:28 19992147 阅读(176) 评论(0) 推荐(1) 编辑
摘要: 裴蜀定理 有这样一个定理,ax+by能凑出最小的正整数=gcd(a,b),那么这里正好符合我们要求的东西,先开始我还想不明白6和4是怎么配出2的 然后我们就把每个数质因数分解,最多sqrt(n)个,放到一个map里统计次数,如果一个因子出现次数大于等于k就和他取max,最后就是答案 #include 阅读全文
posted @ 2017-09-16 08:21 19992147 阅读(223) 评论(0) 推荐(1) 编辑
摘要: 线段树 额 计蒜客竟然把这个出成noip模拟题。。。 这个东西很像1018,只不过维护的东西不太一样 具体有这五种情况,合并请看代码,自己写了一个结果wa了,然后就copy了一下。。。 然后build的时候不用把叶子结点的值赋成inf,感觉奥妙重重 #include<bits/stdc++.h> u 阅读全文
posted @ 2017-09-16 08:17 19992147 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 线段树优化建图+费用流 朴素的做法是每个强盗直接对每个区间的每个点连边,然后跑最大权匹配,这样有5000*5000条边,肯定过不去,那么我们用线段树优化一下,因为线段树能把一个O(n)的区间划分为O(logn)段 然后就建一棵线段树,每个节点向两个儿子连(inf,0)的边,叶子结点连向sink,(1 阅读全文
posted @ 2017-09-16 08:14 19992147 阅读(215) 评论(0) 推荐(0) 编辑