2017 ACM

2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest

A - Arranging Wine

题目描述:有(R)个红箱和(W)个白箱,将这些箱子分成若干堆,使得每一堆只有一种颜色,然后将这些堆排成一排,使得相邻的堆的颜色不一样,并且每堆红箱的个数不能超过(d),问有多少种方案。

solution
不会。

B - Barcode

题目描述:有一排(n)个球,现在要给这(n)个球涂成红色或蓝色,使得红色球的个数等于蓝色球的个数,或者没有两个连续的蓝球,问有多少种方案。

solution
第二个条件的方案可以(dp)算出,而第一个条件的方案是(C_{n}^{n/2}),最终答案为两种条件的方案相加减去重复的(frac{n}{2}+1)
(C_{n}^{n/2})要用模意义下的组合数来求。

时间复杂度:(O(n))

C - Cu Chi Tunnels

题目描述:给出(n)个点的度,构造一棵树使得每个点的度满足所给的点,而且从根到每个点的路径的点编号递增。问能否构造这棵树。

solution
显然(1)是根,除了(1)外每个点的度减一就是儿子数。编号从大到小构造儿子,当儿子数不够时,无解,否则有解。

时间复杂度:(O(n))

D - Dropping Ball

题目描述:给出一个(m imes n)的网格图,每个格子是''或者'/'。有两种操作:1、问从第一行第(k)列上方放一个球,问这个球能不能从最后一行掉出去,如果能,则输出从那一列掉出去。 2、修改某一个格子的符号,从''变成'/',或者相反。操作总数为(q)

solution
(m leq 1000)时,每次询问直接暴力模拟。
(m > 1000)时,(n < 100)。所以可以用线段树维护转移表。区间([L, R])的点为一个转移表(jump[i]),表示当一个球到了第(L)行第(i)列,它会从第(R)行第(jump[i])列掉出去。

时间复杂度:(O(qnlogm))

E - Engaging with Loyal Customers

题目描述:有(n)个人,(m)份礼物,每个人对每份礼物有一个好感值,问如何分配礼物(一个人只能有一份礼物)使得每个人的好感值的和最大。

solution
当礼物较少时补足礼物,使得问题变成一个完美匹配的问题,然后用KM解决。

时间复杂度:远小于(O(n^3))

F - Famous Pagoda

题目描述:有一个(n)个元素的序列(a_i),将其分成(m)段,给定一个数(k=1 or 2),每一段的值为(min_{v in mathbb{Z}} sum_{s=i}^{j} left | a_s-v ight | ^k),输出每一段的值的总和的最小值。

solution
(f[i][j])表示前(i)个数分成(j)段的最小值,显然(信仰)当(i)一定,(j)递增,决策(k)也递增,所以直接(n^2)dp

时间复杂度:(O(n^2))

G - Game of Divisibility

题目描述:有(n)个数(a_i)和一个数(k),现在有两个人轮流从(n)个数中取数,每次取一个,直到所有的数取完。最终谁取的数的和是(k)的倍数,谁就获胜,否则平手。输出在最优策略下的最终结果。

solution
不会

H - Height Preservation

题目描述:有一个(m imes n)的网格图,每个格子有一个数(h_{ij}),现在给每个格子取一个数(s_{ij}),满足在每一行(i),若(h_{ij}=h_{ik}),则(s_{ij}=s_{ik}), 若(h_{ij}>h_{ik}),则(s_{ij}>s_{ik}),以及在每一列也同样满足类似行满足的条件,问(s)不同数字最少有多少个。

solution
将相等的点缩点,不相等的点连边,然后求最长路。

时间复杂度:(O(n))

I - ICPC Awards

题目描述:按照排名顺序给出(n)支队伍的学校名与队名,然后每间学校只保留排名最前的队伍,最后输出前(12)支队伍。

solution
模拟

J - Joining Networks

题目描述:一个有(n)台电脑的网络构成一棵树,两台电脑的传输花费为两台电脑的距离的平方,一个网络的传输花费为所有无序电脑对的传输花费总和。现有两个两个网络,添加一条边使得这两个网络连通且连通后的网络的传输花费最少,输出最小值。

solution
不会。

K - K-Rotating

题目描述:有(n)个老师,(n)个班,开始时第(i)个老师交第(i)个班,接下来有(m)个修改操作,每次操作选择第(x)个星期,在第(x)星期的开始,选择(k)个老师(p_1, p_2, ..., p_k),然后老师(p_i)转为教老师(p_{i+1})教的班,(p_n)(p_1)教的班。在这修改操作期间还有一些询问操作,问第(k)个老师在第(x)个星期的星期二教哪一个班。

solution
分块,暴力维护每一块的置换,暴力修改,暴力询问。

时间复杂度:(O(q sqrt{m}))

L - Land Inheritance

题目描述:给出一个多边形以及一条直线,将多边形沿直线对折,求重叠部分的面积。

solution
听说是一个模板:面积交的面积。

时间复杂度:(O(n))

原文地址:https://www.cnblogs.com/GerynOhenz/p/8514291.html