Timus 1225. Flags Fibonacci的应用
来源:互联网 发布:linux卸载scim 编辑:程序博客网 时间:2024/05/16 17:55
On the Day of the Flag of Russia a shop-owner decided to decorate the show-window of his shop with textile stripes of white, blue and red colors. He wants to satisfy the following conditions:
- Stripes of the same color cannot be placed next to each other.
- A blue stripe must always be placed between a white and a red or between a red and a white one.
Determine the number of the ways to fulfill his wish.
Example. For N = 3 result is following:
Input
N, the number of the stripes, 1 ≤ N ≤ 45.
Output
M, the number of the ways to decorate the shop-window.
Sample
3
4
原来Fibonacci可以这么来使用的,本题的动态规划法应用,大略分析如下:
f(n) = f(n-1) + f(n-2)
when f(n-1) put W and [R,...(n-1)] or R and [W,...(n-1)]
when f(n-2) put R,B and [W,..(n-2)] or W,B and [R,...(n-2)]
Why OR? Because if we do both, then we get repeated flags, so it make a finonacci sequence.
class Flags1225{static const int N = 46;long long A[N];public:Flags1225(){A[0] = 0, A[1] = 2, A[2] = 2, A[3] = 4;for (int i = 4; i < N; i++){A[i] = A[i-1] + A[i-2];}}void run(){int a = 0;cin>>a;cout<<A[a];}};
0 0
- Timus 1225. Flags Fibonacci的应用
- Timus 1225. Flags dp
- Timus 1225. Flags
- Timus Online Judge:1225. Flags
- timus 1294. Mars Satellites 余弦定理的应用
- HDU-ACM2046--Fibonacci的应用
- HDU2855 Fibonacci Check-up 矩阵的应用
- Fibonacci数列的应用和求解
- HDU-ACM2044--Fibonacci数列的应用
- 模的应用--uva11582 Colossal Fibonacci Numbers!
- do_fork使用的flags
- PendingIntent的Flags
- PendingIntent的Flags
- cv::imread的flags
- Activity的Flags
- Activity的Flags
- ApplicationInfo的flags属性
- Activity的Flags
- awk 简介
- 重写EditText,使其具有下划线
- LimeJS Demo学习2 box2d使用
- c++快速排序
- Linux下安装jdk
- Timus 1225. Flags Fibonacci的应用
- C语言程序员必读的五本书------转自嵌入式linux中文站
- Linux Shell脚本入门学习
- 深入学习Make命令和Makefile(上)(3)
- MFC 单文档窗口最大化显示
- C++类成员函数中static变量小测试
- 更改git clone时默认检出的分支
- 自定义security过滤器顺序
- CentOS 6.5搭建本地yum源的两种方式链接