• 《联盟训练补》


    E:

    单调栈维护的题,比赛的时候没想到,线段树写了很久,但是中间没理清。

    这题线段树也能做,但是要麻烦一些。

    我们在栈中维护一个栈,尽量让栈顶的元素大,也就是说如果这个元素后面还有这个元素,且这个元素不在栈中。

    并且小于栈顶的元素,我们就去看栈顶的元素后面还有没有,如果有我们就把栈顶元素弹出,把这个更小的压入。

    这样栈顶的元素变小了,原来那个栈顶的元素在序列中的位置就靠后了。

    B:

    有想到二分图但是没想的很清楚。

    最大独立集太久没做了所以不是很敏感。

    对题意进行剖析之后就可以发现是个二分图模型,求最大独立集。

    关键在二分图的构造:

    先思考转化成二分图后,我们左右可以匹配的应该满足什么?要可以转化。

    所以我们对可以转化的进行连边,然后再用染色法去构建二分图。

    因为题目保证一定有解了,那么就说明必定能染色成功。

    然后就可以求最大独立集 = n - 最大匹配。

  • 相关阅读:
    小猫爬山
    方格取数
    Bash 脚本编程
    树链剖分学习笔记
    输入输出优化
    没有上司的舞会
    线性dp 之 麻烦的聚餐
    飞翔
    挖地雷
    The Prices
  • 原文地址:https://www.cnblogs.com/zwjzwj/p/14506791.html
Copyright © 2020-2023  润新知