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)\)

posted @ 2021-01-03 19:22  zlc0405  阅读(83)  评论(0编辑  收藏  举报