• AGC043(F未做)


    A

    对于棋盘上的一条路径,花费为连续障碍的个数

    B

    (a_i-1),则只有((0,1,2))三个数
    显然,若序列中存在(1),则答案仅可能为(0/1),那么考虑在模(2)的条件下进行,则每个数对答案的贡献可以表示为组合数

    若序列中不存在(1),即仅有(0,2),将(2)看作(1),若最终答案为(1)则实际为(2)

    C

    显然,这题贪心

    定义(f_{x,y,z}),等于(1)则可选,等于(0)则不可选
    (f_{x,y,z})可通过((x',y,z),(x,y',z),(x,y,z'))转移,即若后继相邻节点全为(0),其为(1)

    考虑其意义,将边按编号重定义方向,相当于博弈中,三张图,状态为三张图中所在点
    那么(f_{x,y,z}=1)对应比输状态

    对每个图的点搞出(sg)函数来,(ans=sumlimits_{sg_xoplus sg_yoplus sg_z=0}10^{18(x+y+z)})
    由于在DAG中点sg函数的上界为(O(sqrt{m})),可以直接枚举两张图中点的sg值

    (O(n+m))

    D

    (a_{i,j})为第(i)个序列第(j)个数
    我们发现若(a_{i,j}<a_{i,j-1}),其在序列中一定是连续的,进一步的,段可以分成前缀最大值
    将其合并,例如({5,6,1})合并为({5,6})({4,3,1})合并为({4})

    那么若以其为序列进行操作,其得到的序列是有序的
    若最后得到的序列长度为(m),其每个数有一个代表的长度(len_i)

    考虑判断序列({len})合法的充要条件

    • (len_iin[1,3])
    • (len_i=2)的个数不超过(len_i=1)的个数

    对于序列({len}),其能表示出来的原数组的个数为(dfrac{3n!}{prodlimits_{i=1}^m (sumlimits_{j=1}^i len_j)})

    解释:
    考虑从最后一段开始选其,该段选择靠后的(len_i-1)个数后,首数直接确定了

    E

    考虑一个点集,如何为合法
    令点作直线垂直于(x)
    构造字符串,从((0,0))出发,若从(i)点垂线上方经过,添加(u_i),若从下方经过,添加(d_i)
    若该字符串能通过每次将相邻两个相同的字符删除,从而达到清空字符串的效果,则成功

    找到极小的非法子集,令其大小为(n)

    • (n=1)(s_1 = u_1d_1)
    • (n>1)(s_n = u_n s_{n - 1} u_n d_n overline{s_{n-1}} d_n)。其中(overline{s_{n}})表示将(u_i,d_i)互换;进一步的,可以发现这其实就是翻转

    证明:
    显然该子集时,是非法的。考虑证明去掉任意点后合法
    若存在(xin[1,n])(s_x)可以清空即可
    若去掉(n),显然可行。若去掉(xin[1,n)),考虑(s_x = u_x s_{x - 1} u_x d_x overline{s_{x-1}} d_x=u_xs_{x-1}overline{s_{x-1}}d_x=u_xd_x=emptyset)

    L挺松的,可以把非法子集融到一起

  • 相关阅读:
    Java用户自定义函数
    JavaScript常用函数
    Javascript 流程控制
    Javascript基础
    CSS的继承和使用方式
    Python列表
    Python变量和简单数据类型
    CSS选择符
    CSS的基本语法
    Java环境变量搭建
  • 原文地址:https://www.cnblogs.com/Grice/p/13236863.html
Copyright © 2020-2023  润新知