hdu 2606 Renovation Problem hdu 2606
来源:互联网 发布:崇祯 知乎 编辑:程序博客网 时间:2024/05/17 23:06
//看了冰学长的思路才明白
// 当n>=3时可以全部由2x2的方砖镶嵌得到
//eg:
// 用 [**] 表示
// [**] 一块2x2的方砖
// n=15 时
//[**][**][**][**][**][**][**] *
//[**][**][**][**][**][**][**] *
//* [**][**][**][**][**][**][**]
//* [**][**][**][**][**][**][**]
//
//dp[i]可以由dp[i-1]+一列1x1方砖(1种) 或者dp[n-2]+由含2x2的方砖组成的两列(4种) 或者dp[n-3]+由含3x3的方砖组成的3列(2种) 或或者dp[n-4]+由含4x4的方砖组成的四列(1种)
//
//还可以由dp[n-3~0]+(3~n)列由2x2方砖镶嵌 得到
//
#include<stdio.h>
#include<string.h>
#define mod 19890907
int dp[110];
int main()
{
int n,t;
int i;
int l;
dp[0]=1;
dp[1]=1;
dp[2]=dp[1]+4*dp[0];
dp[3]=dp[2]+4*dp[1]+2*dp[0]+2*dp[0];
dp[4]=dp[3]+4*dp[2]+2*dp[1]+dp[0]+2*dp[1]+2*dp[0];
for(i=5;i<=100;i++)
{
dp[i]=dp[i-1]+4*dp[i-2]+2*dp[i-3]+dp[i-4];
dp[i]=dp[i]%mod;
for(l=3;l<=i;l++)dp[i]=(dp[i]+2*dp[i-l])%mod;//计算末尾由2x2方砖镶嵌组成且长度为l由多少种情况
}
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",dp[n]);
}
return 0;
}
// 当n>=3时可以全部由2x2的方砖镶嵌得到
//eg:
// 用 [**] 表示
// [**] 一块2x2的方砖
// n=15 时
//[**][**][**][**][**][**][**] *
//[**][**][**][**][**][**][**] *
//* [**][**][**][**][**][**][**]
//* [**][**][**][**][**][**][**]
//
//dp[i]可以由dp[i-1]+一列1x1方砖(1种) 或者dp[n-2]+由含2x2的方砖组成的两列(4种) 或者dp[n-3]+由含3x3的方砖组成的3列(2种) 或或者dp[n-4]+由含4x4的方砖组成的四列(1种)
//
//还可以由dp[n-3~0]+(3~n)列由2x2方砖镶嵌 得到
//
#include<stdio.h>
#include<string.h>
#define mod 19890907
int dp[110];
int main()
{
int n,t;
int i;
int l;
dp[0]=1;
dp[1]=1;
dp[2]=dp[1]+4*dp[0];
dp[3]=dp[2]+4*dp[1]+2*dp[0]+2*dp[0];
dp[4]=dp[3]+4*dp[2]+2*dp[1]+dp[0]+2*dp[1]+2*dp[0];
for(i=5;i<=100;i++)
{
dp[i]=dp[i-1]+4*dp[i-2]+2*dp[i-3]+dp[i-4];
dp[i]=dp[i]%mod;
for(l=3;l<=i;l++)dp[i]=(dp[i]+2*dp[i-l])%mod;//计算末尾由2x2方砖镶嵌组成且长度为l由多少种情况
}
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",dp[n]);
}
return 0;
}
0 0
- hdu 2606 Renovation Problem hdu 2606
- hdu-2606 Renovation Problem(递推)
- HDU-PROBLEM
- HDU Problem A
- HDU 3549 Flow Problem
- HDU problem 3877
- HDU Train Problem II
- HDU 1005 Problem Description
- HDU 1534 Schedule Problem
- hdu 3549 Flow Problem
- hdu 3549 Flow Problem
- HDU 1001 Sum Problem
- hdu 3374 String Problem
- HDU 1016 PrimeRing Problem
- HDU--1001--Sum Problem
- hdu Train Problem II
- hdu 1001 Sum Problem
- hdu A + B problem
- loadrunner自动下载文件并保存到本地脚本
- GetFullPathName.GetLongPathName 和GetShortPathName
- C++ string (转)
- 冯东阳:5000元葬送了我的行业网站之梦
- 最美和声
- hdu 2606 Renovation Problem hdu 2606
- python模块——logging(日志管理)
- 黑马程序员_学习笔记:3) 面向对象1:概述、封装、this、static、单例设计模式
- 2014-04-28
- 最全的Android/IOS等常用的WebService服务列表(本人整理)--值得收藏 留着说不定你就用到了
- Cocos2d-x 3.0正式版 HelloWorld分析
- 《Android Design》 4.4 中文版
- OpenStack performance相关分析
- QT creator 编程中常见问题记录