zoukankan      html  css  js  c++  java
  • 省选模拟35

    刚自闭改完T2,我简单写吧。。。

    A. two

    有一段复杂的描述简单说就是一个点在子树内,另一个点在子树外。
    60pts的暴力我用bitset存祖先卡过去了
    正解:
    0蓝1红。
    按dfs序建线段树,那么对于该树上已被删除的一条边(p,q),fa[q]=p,现阶段需要删除的点对满足,一个在[in[q],out[q]]区间中,另一个在区间外。
    做法是以一端点的dfs序为下标,值是另一端点。
    如此建两棵线段树,并在节点内按照另一端点排序。
    这样的话删除操作就是单调的,直接扫描即可。

    B. bracket

    30pts枚举端点dfs暴力
    处理单次询问复杂度很高,询问数又很多,可以想到点分治。
    问题在于合并括号序列。
    设重心为u
    点对i->j合法,那么i到u的u处的前缀和一定与j到~~~的互为相反数,且i取到i-u所有前缀和的最大值,j取到最小值。
    记录最值出现次数得出段数
    所以分治到u,dfs处理前缀和为正出发的一部分f,以及目的g
    合并时卷积优化。
    细节较多。。。

    C. sum

    有个结论:最优解中的元素最多只有两种质因子,若有两种则一个<=sqr 一个>sqr
    好像可以基本不等式yy下。但不会证。。。
    如果没有两种质因子的情况,那么每个质数取到<=n的最大幂次数。
    在该前提下,如果质因子配对能更优,那么连边
    跑最大费用流得解。

  • 相关阅读:
    C语言-if语句
    C语言-表达式
    C语言-基础
    Java for LeetCode 187 Repeated DNA Sequences
    Java for LeetCode 179 Largest Number
    Java for LeetCode 174 Dungeon Game
    Java for LeetCode 173 Binary Search Tree Iterator
    Java for LeetCode 172 Factorial Trailing Zeroes
    Java for LeetCode 171 Excel Sheet Column Number
    Java for LeetCode 169 Majority Element
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/12398557.html
Copyright © 2011-2022 走看看