您的位置:首页 > 其它

Single Round Match 496

2011-02-05 22:00 344 查看
哎……由于春节快到了各种回老家……这次SRM没有做……今天终于回家安稳下来了,把这次SRM的题目看了一下。

250是水题,500是图论+计数,950是神奇的结论题。

250pt ColoredStrokes

有红色和蓝色两种宽为1笔,在n * m的画板上画画,红色只能水平画,蓝色只能垂直画,如果某个点同时被画了红色和蓝色,则这个点会变成绿色。给出这板子上n * m个元素的颜色,求最少画的次数。

分别统计下红色和蓝色……加起来就好了。

500pt OneDimensionalBalls

n个球在数轴上动,速度相同,有些向右有些向左,时刻A和时刻B的快照记录下了所有球的位置,问时刻A和时刻B有多少种不同的对应方式。

首先枚举经过的时间d(可行的取值只有n^2种),然后问题就转化为了求二分图最大匹配的数目。这个二分图中点的度数最多为2。我们把所有连通分量分开考虑,令size表示这个连通分量中点的个数,match表示最大匹配数,count表示最大匹配的方案数。则每个连通分量可能是如下三种情况之一:

1、孤立点,match和count均不变。

2、一条链,match += size / 2,若size为奇数,count *= (size + 1) / 2,否则count不变。

3、一个环,match += size / 2,count *= 2。

累加起所有count即可。

950pt YetAnotherHamiltonianPath

n个点,每个点i赋予一个字符串标识label[i],u和v之间的权值定义为length(label[i])^2 + length(label[j]) ^ 2 - length(LCP(label[i], label[j]))^2,求0到1的最小权值哈密顿路。

先提出常数来,题目其实让求的是max(sigma(length(LCP(label[p[i]], label[p[i + 1]])))),p为0 ~ n - 1的排列,p[0] = 0,p[n - 1] = 1。

再简化一下,题目是让求一个哈密顿环,其中0和1相邻。

再简化一下,其实任意一个环都可以在不改变权值的前提下,转化为0和1相邻的环(考虑这n个字符串组成的trie,可以通过调整节点访问的顺序使01相邻)。

于是我们就把所有字符串排序,然后相邻的取LCP计入答案即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: