zoukankan      html  css  js  c++  java
  • HDU 2045 不容易系列之(3)—— LELE的RPG难题

    解题报告:

    题目大意:给你一个n,表示有n个排成一条直线的方格,现在有红、粉、绿三种颜色,用着三种颜色将这个n个方格涂满,涂色的规则是相邻的两个方格的颜色不能相同,

    并且最后一格跟第一格的颜色不能相同,要求一共有多少涂色的方法。

    也是一道动态规划题,若现在要求有n个方格时有多少种涂色方法,可以把它化为两个子问题来 求解,第一,当第n-1个方格涂的颜色与第一格的颜色相同时,而第n-1格的颜色与第一格颜色相同的情况可以由n-2格的结果得到,因为当有n-2个方格的情况的时候,要求的就是最后一格不能与第一格的颜色相同,于是就可以看成是将n-2的情况直接在后面加上一种与第一格相同的颜色,就得到了当第n-1格的颜色与第一格的颜色相同的情况。而当第n-1格的颜色与第一格相同时,第n格的涂色方案就可以是两种了。接下来就考虑另一种子问题,即当第n-1格的颜色与第一格的颜色不同时,那么第n格的涂色方案很明显就只有一种了,于是将这两种子问题加起来就得到有n个方格时涂色方案的种数。

    View Code
     1 #include<stdio.h>
     2 __int64 DP[55],n;
     3 void dabiao() {
     4     DP[1]=3;
     5     DP[2]=DP[3]=6;
     6     for(int i=4;i<=51;++i)
     7     DP[i]=DP[i-1]+DP[i-2]*2;
     8 }
     9 int main() {
    10     dabiao();
    11     while(scanf("%I64d",&n)!=EOF)
    12     printf("%I64d\n",DP[n]);
    13     return 0;
    14 }
  • 相关阅读:
    linux---网络管理
    linux---Vim使用方法大全
    virtualenv离线创建虚拟环境
    python迭代器生成器进阶
    python函数对象
    Django等框架模板渲染中使用Vue控制数据
    django渲染模板与vue的语法冲突解决
    Linux网络抓包
    WSGI Server(uwsgi原理)
    python日志logging模块
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3074462.html
Copyright © 2011-2022 走看看