大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  信息学奥赛>>解题报告>>《彩灯布置》解题报告         本站全文搜索: 友情提示:

《彩灯布置》解题报告
http://www.mydrs.org  8/28/2001  大榕树


一、题意简述

  有n盏位置固定的彩灯排列成圆形,要用m种颜色去着色,求使相邻的彩灯着不同颜色的方案数。

二、算法分析:

  设f(n)为用m种颜色给n盏彩灯着色的方案数,(i=1、2、…、n ) 见图1。 我们设三盏连续的彩灯依次编号为i-1,i,i+1。现在分析彩灯i-1与彩灯i+1。


             图1              图2

  (1)若彩灯i-1与彩灯i+1 颜色不同,如图1,则去掉彩灯i,如图2,则变成用m种颜色给n-1盏彩灯着色的方案数。即f(n-1)。 因为彩灯i有m-2种情况(它与彩灯i-1,i+1颜色不同),所以此时方案数为(m-2)*f(n-1)。



              图3             图4

  (2)若彩灯i-1与彩灯i+1 颜色相同,如图3,则去掉彩灯i,并把彩灯i-1,i+1合并成彩灯i',如图4。则变成用m种颜色给n-2盏彩灯着色的方案数。即f(n-2)。 因为彩灯i有m-1种情况(它与彩灯i-1,i+1颜色不同),所以此时方案数为(m-1)*f(n-2)。 综合<1>、<2>得出计算f(n)的递归方程式:
     f(n)=(m-2)*f(n-1)+(m-1)*f(n-2)

  边界条件: 由上述分析过程可以看出满足递归式的n必须大于3。故必须先求出f(1)、f(2)、f(3)的值。很明显:
         f(1)=m, f(2)=m*(m-1), f(3)=m*(m-1)*(m-2)

三、小结

  本题是第二试竞赛题中比较简单的一道题,但还是需要一定的数学功底,分析题意,列出递归方程式。此外,因本题方案数增长很快,因此高精度计算也是必不可少的。




作 者:李榕滨
来 源:福州三中
共有1765位读者阅读过此文

  • 上篇文章《Bin Code》解题报告
  • 下篇文章获取栈剩余空间尺寸

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    SGOI第14次友谊赛成绩
    SGOI-14友谊赛测试数据
    SGOI14友谊赛试题
    SGOI第十三次友谊赛数据
    SGOI第13次友谊赛成绩揭晓
    SGOI第十三次友谊赛试题
    SGOI第13次友谊赛竞赛规则
    Sgoi12之《黑白瓷砖》
    《哈利·波特与魔法石》
    Sgoi12之《网络传输》
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号