• 2019牛客暑期多校训练营(第五场)


    A. digits 2

    solved by sdcgvhgj 17min
    做法 做过类似题,写了个bfs,其实n个n拼起来就好,因为不需要数最小


    B. generator 1

    solved by sdcgvhgj 100min
    题意(x_n=a*x_{n-1}+b*x_{n-2} (mod p),n=10^{(10^6)})
    做法 想了半天怎么(O(n))十进制转二进制,其实用十进制快速幂就好了。。。超时两发最后拆了矩阵乘
    复盘 一开始总想着转化成二进制后施展,后来发现不转二进制也能做。


    C. generator 2

    upsolved by sdcgvhgj
    题意 (x_i=(a*x_{i-1}+b) mod p),求最小的i使得(x_i=v)(q≤1e3, p≤1e9+9)
    做法

    • 求出通项直接每次询问bsgs的复杂度是(O(q*sqrt p)),TLE
    • 其实把bsgs的预处理部分调大点就能更快查询了,怎么这都没想到。。。

    D. generator 3


    E. independent set 1

    upsolved

    做法 考虑 DP,(dp[mask]) 表示,(mask) 集合的点最大独立集。对 mask 集合中 id 最小的点,是否在独立集中进行枚举即可。

    复盘

    • 比赛时 rdc 的意识被 memset 折半,比赛后半段在划。
    • 活鱼提出了一个很玄学的算贡献的做法,通过了样例,但复杂度解体了。
    • 比赛的时候,在梦游啊。

    F. maximum clique 1

    识破 发现这是个栩栩如生的二分图。

    复盘

    • 一开始想施展二分图多重匹配,左集放元素,右集放“特征”,然后建不出图,解体。
    • 意识到 bitcount 奇偶性相同,海明距离不可能为 1,二分图!
    • 二分图最大独立集输出解遇到了麻烦。

    G. subsequence 1

    题意 给定两个0~9字符序列s,t,要求计算s中有多少个子序列其十进制表示大于t

    做法

    DP搞一搞

    • (f[i][j]:)表示用(s)(i)个字符匹配(t)(j)个字符的方案数,其中(s[i] = t[j])
    • 算完f数组,然后枚举答案序列与(t)(lcp),暴力后缀和维护,统计一下就好

    H. subsequence 2

    题意 给定一些限制条件,求满足条件字符串

    做法 cf某场gym有类似的题目,做法就是根据限制条件建DAG,然后拓扑序即可


    I. three points 1

    solved by sdcgvhgj 174min
    题意 在矩形内放一个给定边长的三角形
    做法 枚举哪个角放到左下角,枚举哪条边尽可能靠下,矩形的长和宽也可以交换,共(3*2*2=12)种情况


    J. three points 2

  • 相关阅读:
    Windows安装使用wget
    Ubuntu16.04 安装和卸载MySQL数据库
    申请百度翻译API
    Linux配置JDK
    vmware的三种网络连接模式
    3、linux-目录管理:mkdir、rmdir、mv
    2、linux-添加组groupadd、修改组groupmod、删除组groupdel
    1、linux-用户管理useradd,usermod,userdel
    在Linux操作系统里有Ext2、Ext3、Linux swap和VFAT四种格式
    第四次作业 简易计算器
  • 原文地址:https://www.cnblogs.com/FST-stay-night/p/11284981.html
Copyright © 2020-2023  润新知