• Global Round 4 题解(1178A~F)


    (Global Round 4)题解

    (zhanglichen 2021.1.3)

    (A.Prime Minister)

    给出一个数组,请你选出一些元素,使得这些元素的和超过数组总和的一半,同时里面都小于等于(a_1)的一半。(a_1)必选。

    (Solution)

    简单模拟。

    时间复杂度(O(n))

    (B.WOW Factor)

    给出一个只包含(w,v,o)的字符串,连续的(2)(v)可以视作一个(w)。询问(wow)子串的数量。

    (Solution)

    常见套路,一段连续的长度为(x)(v)可以视作(x-1)(w)。对每个(o)算一下贡献即可。

    时间复杂度(O(n))

    (C.Tiles)

    需要你用如图所示的瓷砖拼成一个(h*w)的地板,询问有多少种拼法。

    (Solution)

    常见套路,先确定第(1)行的方案数量,再确定后面几行的方案数量。

    财富密码是(2^{h+w})

    时间复杂度(O(h+w))/(O(log(h+w)))

    (D.Prime Graph)

    给出一个(n),请你构造一个(m)条边的图,使得(m)是素数,同时每个点都是素数。

    (Solution)

    数学直觉不好的我打表后发现,(n)在距离它很近的位置就能找到(1)个素数。

    因此我们可以先建一个环,然后在环上加边,直到边数是素数时停止。可以保证每个点的度数是(2)(3)

    时间复杂度(O(n))

    (E.Archaeology)

    给出一个只包含(a,b,c)的字符串,保证相邻的(2)个字符不相同。

    询问是否有长度大于等于(n/2)的回文子串。

    (Solution)

    找题目里的关键性质:(n/2)和相邻的(2)个字符不同,只包含(3)种字符。

    性质:取前(2)个字符和最后(2)个字符,必有相同的字符。

    因此就不断从前面(2)个取一个,后面(2)个取一个即可。

    如果最后剩下的长度小于(4),随便取一个作为回文串中心即可。

    时间复杂度(O(n))

    (F1.Short Colorful Strip)

    有个长度为(m)公分的布,要在上面每公分都染上颜色,整块布染恰好(n(n=m)n(n=m))种颜色。颜色标号从(1)(n)。保证颜色互不相同。染色需遵循:

    从颜色(1)到颜色(n)依次,即必须先染标号小的颜色
    2.每次可以染任意一个区间,但必须满足这个区间之前的颜色是相同的。

    询问将这块布染成所给颜色的方案数。

    (Solution)

    看了大神的题解还是一知半解,区间(DP)还是太弱了,想拿银牌必须把区间(DP)练好。

    定义状态(f(l,r))表示染好((l,r))这个区间的方案数,(g(l,r))表示染完最小的元素后再染这个区间的方案数。

    (g(l,r)=f(l,p+1)*f(p+1,r))

    (f(i,j)=sum_{k=l}^{r}g(l,k)*f(l+1,r))

    最后(f(1,n))即为答案。

    时间复杂度(O(n^3))

  • 相关阅读:
    arm-gcc 命名规则
    Ubuntu中安装最新 Node.js 和 npm
    Tutorial: Create a Blinky ARM test project(创建一个闪灯的arm测试项目)
    Tutorial: How to install GNU MCU Eclipse?
    操作系统有关概念
    移植 uCos-III 3.03 到 STM32F429 上
    Kubernetes工作原理
    Kubernetes基础特性
    nmap详解之原理与用法
    nmap详解之基础示例
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/14226580.html
Copyright © 2020-2023  润新知