摘要: CF1063F String Journey 法一: 题解 首先发现,答案一定可以是长度为k,k-1,....1的串 而且后一个是前一个串删掉第一个字符或者删掉最后一个字符得到的 设fi表示i开始的后缀,最大的k是多少 发现f_i<=f_{i+1}+1 所以可以从高到低暴力枚举f_i=val,每次最 阅读全文
posted @ 2019-06-07 19:19 *Miracle* 阅读(205) 评论(0) 推荐(0) 编辑
摘要: CF981H K Paths 题解 一道不错的分治ntt题目 题目稍微转化一下,就是所有k条链的存在交,并且交的部分都被覆盖k次 所以一定是两个点,之间路径选择k次,然后端点两开花 f[x]表示x子树内往下延伸k条链(可以停在x)的方案数(有标号) 每个子树选择一个或者不选择,最多一共选择k个,dp 阅读全文
posted @ 2019-06-07 16:37 *Miracle* 阅读(510) 评论(0) 推荐(0) 编辑
摘要: CF1109F Sasha and Algorithm of Silence's Sounds 考虑树的性质:n个点,n-1条边,连通图 前两个用老套路,考虑枚举右端点,线段树维护左端点情况 n不同,但是,一个图是树,那么必然n-(n-1)=1,如果最小值就是1,那么是可以维护的。 所以如果保证这些 阅读全文
posted @ 2019-06-07 14:54 *Miracle* 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 定义p+q=(p.x+q.x,p.y+q.y),给定两个点集,求{pi+qj}的凸包(凸壳)的问题 以求凸壳为例(凸包可以通过求上下凸壳然后拼凑): 显而易见的结论是: 新凸壳上的点一定是由p和q的凸壳上的点相加之后构成的 求出p,q的凸壳,然后合并 合并方法:双指针: 图片by:shadowice 阅读全文
posted @ 2019-06-07 11:06 *Miracle* 阅读(1290) 评论(0) 推荐(0) 编辑
摘要: CF1019E Raining season 题解 码农题:边分治+闵可夫斯基和 发现,每一条路径是一个ax+b的一次函数形式 最暴力的想法是: 把所有的路径拿出来,贡献给每个t 发现,其实是这些直线的半平面交(从上往下看能看到的直线) 考虑能不能不n^2 各种取max,合并,覆盖,都可以减少不必要 阅读全文
posted @ 2019-06-07 10:56 *Miracle* 阅读(584) 评论(0) 推荐(0) 编辑