FoxPaintingBalls

作者:王子健 汪乐平

关键词:分析

题目简述

给定你三种颜色(红、蓝、绿)的小球,其中红色球有个,蓝色球有个,绿色球有个。
你要用这些小球排列成若干满足以下条件的三角形:

啊惨啊

.三角形第行要有个小球。

.相邻的小球不能出现相同颜色。

请问最多排列出多少这样的三角形?

分析

我们不妨先来从上到下画一画满足条件的三角形,看一看这样的三角形有什么性质。
不难发现如果我们确定了前两个小球的颜色,整个三角形也随之而定,因为以后的每个小球都与个已经确定颜色的小球相邻。

进一步观察可得:如果,则排列成一个三角形所用的三种小球数总是满足其中一种颜色比另外两种颜色多用个,否则所用三种小球数目相等,且均为个。

算法

设最大个数是。列出关于的不等式。当时,关于的不等式有三个:,这三个不等式是显然的;当时,还需要考虑每个三角形多的一个小球,再加一个不等式,解得。求最大的同时满足这几组不等式的整数解即可。

时间复杂度为

results matching ""

    No results matching ""