• CSP 模拟14



    都爆炸成这个样子了 老姚还在奶
    奶 油 小 生 老 姚
    这次考试的确考的太差了
    T1 T2 都不难 但是一道也没做出来 考试的时候想到正解不敢打 要么就是打不出来 到底还是思路不够清楚 码力也不够

    A:虎

    还是贪心 构造
    定义
    一开始是白边 要求为黑边的边权为1
    没有要求的边权为-1
    其它都是0

    最优化的构造显然是1和1匹配
    先考虑70pts
    所有边边权要么是1 要么是0
    对于一个点的儿子 如果是偶数自己匹配 如果是奇数就往上传
    这个和之前的构造很像 做过几次这样的题了
    但是如果上传的时候 发现上面那条边边权是0 那就把这个也自己匹配掉
    因为哪怕传上去 最终还要把边权0的边再改回黑边 不会更优
    扩展到100pts
    -1也是可以满足上传的 类似于1的情况 处理一下就好了





    B: 陶陶摘苹果

    考试的时候想到100pts代码了
    但是没敢去写 总觉得自己不是正解
    首先处理dp数组
    表示从每个点开始 到最后的位置
    单调递增选可以选多少个数
    单调栈搞一下就可以了
    然后考虑怎么处理修改
    每次修改就去pos + 1一直到最后的位置里 找到第一个比此时最大值大的数 然后加上其dp值 就好了
    实现方法是树套二分 (log^2)
    在pos + 1 到 n的位置里查找答案
    然后每次判断左儿子中最大值是否大于当前要查找的val
    如果是 递归左儿子
    如果左儿子不满足
    判断右儿子中最大值是否大于当前要查找的val
    如果是 递归右儿子
    不是 直接返回0就好了

    最大值直接用线段树维护就行了

    或者分块写 跟线段树差不多 随便写写 记得判一下边界 不然数组会越界

    正解是线段树维护单调栈 板子题 但是之前没学过




    C:开心的金明

    贪心
    开set记录一下每个月电脑的价值和代价
    用set维护结构体,表示电脑的价格和数量,每次都买最便宜的,如果超过e限制,就每次删最贵的,




    D:笨小猴

    之前做过的
    正解是贪心
    按关键字a升序排序 每次选择两个数中b较大那个
    因为最后一个我们会选择一个最大的a
    所以我们可以扔掉第一个a不看 再次去配对
    容易发现每一对中a大的 b也大了
    所以是合法的

    但是考试的时候是直接模拟的
    按a排序 把前n+1个全部选上
    然后按b排序 每次选最大的b 并把最小的a扔掉
    这样构造出一组解

    如初见 与初见
  • 相关阅读:
    基本排序
    mysql安装
    函数和方法
    COOKIE 与 SESSION
    django---入门
    django模板继承
    2017-11-14
    Django---模板层(template)
    Dajngo---model基础
    Django--基础篇
  • 原文地址:https://www.cnblogs.com/HISKrrr/p/13801011.html
Copyright © 2020-2023  润新知