• ARC120 简要题解


    链接

    赛时做出:ABCD,罚时 74min,E 题一看以为神仙题,然后赛后看一眼 tag 瞬间会做。。

    C

    发现一个数向左移就 +1,向右移就 -1,然后直接把权值设为 (i+a_i) 然后就可以确定 (A) 中的 (i) 要换到哪里,然后直接逆序对数即可。

    D

    不要试图构造一个匹配,尝试去看那些正负取值方法是合法的。

    然后其实可以大力猜结论:正负号合法当且仅当奇数位的正号个数=偶数位的负号个数。

    然后枚举奇数位的正号个数,每次肯定贪心把绝对值最大的变成正,绝对值最小的变成负,考虑到如果是最优的话一定会被枚举到 (因为可以构造),然后如果正负号不合法一定不劣。

    构造的话,就是对于一个 +1/-1 序列,每次取出最早一段前缀和为 0,然后和第一位相同的填左括号,否则填右括号。因为 +1,-1 个数相同且不会造成负数,所以一定合法。

    E

    和 D 题完全相反,尝试乱搞而没有想到 (dp)

    很显然是二分答案,然后考虑一个人其实只有两种策略:

    • 先向左碰到以后全力向右,这时候他右边的人在终止时间前和他要有个相遇(可以搞一个等效点)。
    • 向右先碰到然后再向左冲,此时其实是解一个方程,根据左边那个人能到的最左来判断这个点初始能往右冲多少。

    所以直接 (dp_{i,0/1}) 表示第 (i) 个人,用哪种策略,能到的最右点,然后中间有一个不能交就直接返回无解。

  • 相关阅读:
    C++
    Qt简介
    C语言
    C/C++
    swagger2 Illegal DefaultValue null for parameter type integer
    maven包引入问题ClassNotFoundException: org.elasticsearch.client.Cancellable
    mysql自定义排序
    使用node创建服务器 运行vue打包的文件
    rsync实现服务器之间同步目录文件
    将jar包发布到maven的中央仓库细节整理
  • 原文地址:https://www.cnblogs.com/Forever-666/p/15506566.html
Copyright © 2020-2023  润新知