zoukankan      html  css  js  c++  java
  • 5.3 SYSU校内训练

    头一天晚上熬了夜,一觉睡到下午。
    比赛开了2h后才到,然后顺理成章的被吊打

    终榜

    A

    (n)个怪排成一排

    两种操作

    1:(l,r,w) 表示学会了一个花费为(w)的技能,效果为清掉([l,r])中的所有怪
    2:(k a_1 a_2.....a_k) 询问杀死这些怪的最小花费是多少

    保证(w=1)

    随便贪心一下就可以了
    每加入一个怪,考虑选择一个覆盖这个点的且右端点尽可能靠右的线段即可。
    线段树维护即可。

    B

    求最短非回文串长度
    显然只要有不止一种不同字母答案即为(2)

    C

    并查集或各种数据结构维护一下连续段即可

    D

    考虑枚举(s_i=s_j=k)的在两个序列上对应的位置
    显然会分别是一段区间
    因此这个两个区间组合在一起就会产生一个贡献
    这个贡献显然可以用二阶差分来维护

    E

    签到题

    F

    签到题

    G

    好像还不是很会,明天问一下xyy

    H

    给你一个(+1)(-1)组成的序列
    每次操作可以合并两个相邻的位置,替换为它们的乘积且获得一个相同大小的收益
    将序列合并成一个数字,最大化收益和。

    考虑一个显然的性质
    合并两个连续的(1)一定不亏
    那因此序列可以转换为一些连续的(-1)的段被单个的(1)分割开

    中间那些(-1)则可以两两配对来构成(1)
    此时需要考虑的一个点就是
    (-1)的连续段长度为偶数时,可以直接全部变成(1),没有什么问题
    但为奇数时,一定会剩下一个(-1)我们需要考虑一下把最后那个(-1)放在什么位置。

    (-1 -1 -1 1)

    (1 -1 -1 -1)
    手玩这两个例子可以发现
    中间的(-1)段是无所谓的
    只有两头上的(-1)段应该把(-1)留在外侧,(1)留在内侧。

    经过这样一番转化后,序列就变成(+1)(-1)的交替序列了

    直接计算即可。

    I

    签到题

    J

    签到题

  • 相关阅读:
    高二下期末考试
    LG月赛.7
    CF1187E
    P5440 【XR-2】奇迹
    P1084 疫情控制
    P1083 借教室
    P2680 运输计划
    P3128 [USACO15DEC]最大流Max Flow
    博弈入门
    HDU 1907
  • 原文地址:https://www.cnblogs.com/Creed-qwq/p/14730896.html
Copyright © 2011-2022 走看看