题意:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.

题解:本来当n=1时,答案是0的(首尾不同时不可能的),但是这儿答案是3

接着我们可以这样来想

当n=2时答案是6

当n>2时,我们等于前一个(dp[i-1])的个数加上,最后一位有两种可能(固定第i-1位不变时)。所以就是 dp[i]=dp[i-1]+2*dp[i-2](i>2)

#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<string>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define eps 1E-8
/*注意可能会有输出-0.000*/
#define Sgn(x) (x<-eps? -1 :x<eps? 0:1)//x为两个浮点数差的比较,注意返回整型
#define Cvs(x) (x > 0.0 ? x+eps : x-eps)//浮点数转化
#define zero(x) (((x)>0?(x):-(x))<eps)//判断是否等于0
#define mul(a,b) (a<<b)
#define dir(a,b) (a>>b)
typedef long long ll;
typedef unsigned long long ull;
const int Inf=1<<28;
const double Pi=acos(-1.0);
const int Mod=1e9+7;
const int Max=100010;
map<int,int> mp;
ll dp[150];
void Init(int n)
{dp[1]=3ll;dp[2]=dp[3]=6ll;for(int i=4;i<n;++i)dp[i]=2*dp[i-2]+dp[i-1];return;
}
int main()
{std::ios::sync_with_stdio(false);int t,n,m;Init(51);while(cin >> n){cout << dp[n] << endl;}return 0;
}

转载于:https://www.cnblogs.com/zhuanzhuruyi/p/5922321.html

HDU 2045 不容易系列之(3)―― LELE的RPG难题(递推)相关推荐

  1. HDU2045 不容易系列之(3)—— LELE的RPG难题(递推)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  2. HDU2045 不容易系列之(3)—— LELE的RPG难题

    不容易系列之(3)-- LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  3. HDU-不容易系列之(3)—— LELE的RPG难题

    链接http://acm.hdu.edu.cn/showproblem.php?pid=2045 #include<stdio.h> int main() {int n,i;__int64 ...

  4. LELE的RPG难题

    不容易系列之(3)-- LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  5. HDU1465 不容易系列之一【递推】

    不容易系列之一 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  6. HDU2049 不容易系列之(4)——考新郎【递推】

    不容易系列之(4)--考新郎 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  7. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 1 //#pragma ...

  8. HDU 4521 小明系列问题——小明序列 LIS+动态规划

    HDU 4521小明系列问题--小明序列 Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u ...

  9. hdu 1465 不容易系列之一(错位排序)

    不容易系列之一 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

最新文章

  1. mysql intersects_mysql gis 空间数据库 根据 经纬度查找附近 (INTERSECTS,within)
  2. iOS开发之网络编程--1、NSURLSession的基本使用
  3. java jtable刷新_java-单击按钮更新JTable
  4. 玩转oracle 11g(15):命令学习3
  5. ffmpeg优化mp4以及hls参数设置
  6. 火车头php接口制作,火车头接口
  7. 【项目实践】:KNN实现手写数字识别(附Python详细代码及注释)
  8. ABAP操作Excel(转)
  9. 3D VR卡镜的使用方法
  10. Linux视频教程在线观看Boobooke
  11. 趣谈网络协议——HTTPS协议
  12. Python 科学计算
  13. Quartus II 13.1入门级使用方法 -仿真篇,适用于小白
  14. vs2008 sp1补丁安装到最后一点点的时候,就无法安装下去了 解决方法[转]
  15. Web应用程序安全原理(Web服务面临的威胁)
  16. 计算机在线作业题,精选《计算机原理与结构》在线作业试题
  17. Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
  18. 深度学习论文阅读目标检测篇(四)中文版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》
  19. 芝麻授权 java调用_【java】手机浏览器怎么调用支付宝进行用户授权呢?
  20. linux看剩余电量命令,用Linux命令行检测笔记本电池用量

热门文章

  1. 最详尽使用指南:超快上手Jupyter Notebook
  2. 4005基于邻接表的顶点的删除(C++,附思路)
  3. 项目部署—连接不上远程redis服务怎么办?
  4. 什么是进程?什么是线程?
  5. java中如何声明班干部,java类成员变量的定义和声明
  6. 计算机二级计划总结,计算机二级细节总结
  7. 【进阶技术】一篇文章搞掂:OAuth2
  8. mysql 8.0 java连接报错:Unknown system variable 'query_cache_size'
  9. tensorflow学习笔记一:安装调试
  10. 安装sendmail