码迷,mamicode.com
首页 > 其他好文 > 详细

UVA580-Critical Mass

时间:2014-09-18 09:50:43      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   os   ar   for   sp   代码   

题目链接


题意:一个栈中只能放入U和L,问存在连续3个以上U(危险组合)的个数为几个

思路:用从的组合数-安全组合=危险组合。d[i]表示第i个位置以L结束的序列,所以就有d[i] = d[i - 1] + d[i - 2] + d[i - 3]。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>

using namespace std;

const int MAXN = 55;

int dp[MAXN];
int n;

void init(){
    memset(dp, 0, sizeof(dp));
    dp[1] = 2;
    dp[2] = 4;
    dp[3] = 7;
    for (int i = 4; i < MAXN; i++)
        dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}

int main() {
    init();
    while (scanf("%d", &n) && n) {
        int ans = pow(2, n);
        ans -= dp[n];
        printf("%d\n", ans);  
    } 
    return 0;
}


UVA580-Critical Mass

标签:style   http   color   io   os   ar   for   sp   代码   

原文地址:http://blog.csdn.net/u011345461/article/details/39367399

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!