• 「考试总结2021-03-28」反演


    A. 矩阵

    考虑枚举一个矩形表示斜率,同时钦定这个矩形的两个端点必须选

    不难发现这个矩形对角线上的点的个数是 (gcd exttt{(长,宽)})

    这个结论的证明考虑 (y=frac{h}w x)(xin [1,w]) 中有几个点满足 (yin{Interger})

    上下消掉 (gcd(h.w)) 之后在 ([1,w]) 里面有 (w/frac{w}{gcd}) 个数是它的倍数

    [ans=2sum_dinom{d-1}{k-2}sum_{n}^{lfloorfrac{N}d floor}(N-nd)sum_{gcd(n,m)=1}^{lfloorfrac{M}d floor}(M-md)+ exttt{点在一个直线上的方案} ]

    提出来 (mu),然后发现有两个乘积就行了

    [ans=2sum_dsum_{p|d}mu (frac{d}p) inom{p-1}{k-2}sum_{n}^{lfloorfrac Nd floor}(N-nd)sum_m^{lfloorfrac{M}d floor}(M-md) + exttt{点在一个直线上的方案} ]

    B.覆盖

    把区间按照右端点排序,从前往后扫,如果当前区间没有点,那么在右端点放一个

    如是解决第一问,按照放点的位置,把这个段割成 (n) 个小段,每个段里面必然会有一个点

    转移:相邻的两个点夹的一段区间,这段里面有一些询问的终点,在区间 (mid) 左侧的由上一个管,剩下的下一个管

    具体就是 (f[i]=min{f[j]}+val(i,j)),同时得到这个 (val(i,j)) 满足决策四边形不等式

    那么使用分治实现决策单调性的 (dp)

    具体而言,已知当前 (dp[i][l o r]) 的决策点 (in [L,R]),找到其 (mid=frac{l+r}2) 的决策点然后两边递归即可

    C.强壮

    将原题中的限制修改为 ( exttt{in or out}),也就是相离或者包含

    这个可以使用线段树或者单调栈进行简单处理,剩下的部分设 (dp_{i,j}) 表示处理到第 (i) 个点,这个点的有长度为 (j) 的右侧链

    转移考虑枚举相邻的限制,合并右链长度,注意每次转移的时候先做一次当前的后缀和

    (dfs) 实现 (dp) 就行了


    反思

    T2 简单贪心没写少20多,T3没有往区间dp方面想少小30

    打趣说是自己不配做个普及选手,其实这种分没打上还是问题挺大的

    发散思维多联想,抓紧时间,该努力的时候要努力,今日收获:

    (1.) 考虑把限制转化成包含和相离,转化成树上再处理

    (2.) (gcd) 的个数

    (3.) 记得补习决策单调性

    既然在衡水第一中学拿着衡水第一中学的学籍,别让自己留遗憾

  • 相关阅读:
    mysql之innodb_buffer_pool
    PBO项目的组织
    03 【PMP】组织结构类型的优缺点和适用范围包括哪些
    02 【PMP】项目管理系统、PMIS、工作授权系统、配置管理系统、变更管理
    01 【PMP】组织结构类型
    手工sql注入简单入门
    新建oracle用户
    linux测试环境搭建步骤
    1、python接口测试requests
    No module named pip 安装工具提示没有pip模块时,解决办法
  • 原文地址:https://www.cnblogs.com/yspm/p/14589692.html
Copyright © 2020-2023  润新知