[POJ 1069]

The Bermuda Triangle

搜索

题意:给出一个边长以三角形个数描述的正六边形,以及n种正三角形,问该六边形能否刚好由这些三角形完全覆盖。

放假都没做题,有点手生。由于提示是搜索题,首先考虑问题建模。可以将每个小三角形的覆盖情况用1bit表示,那么六边形的每行就可以用一个位向量来描述。用作覆盖的三角形只会是正置或倒置。于是,问题就转化成了由上到下由左到右地依次尝试用各种三角形进行填充。

需要注意的是,正六边形是对称的,可以分解成6个正三角形或3个菱形,直接判断后者的完全覆盖情况即可。对于此题数据,只分解成正三角形会WA,分解成菱形可以AC。另外,如果是原来的正六边形,一行最多会有25*4-1=99个小三角形,就无法用64位的LL来表示了。而菱形的话,一行最多为25*2=50位,还是可以的,写起来也较易实现。

ps: 这个假期过得太开心了……发生了不少好事情,希望不会是把一年的运气都一下子用光了吧…………那么接下来,就是要好好准备3月中旬的校赛了。