UVA580-Critical Mass

题目链接

题意:一个栈中只能放入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;
}

时间: 2024-12-16 23:16:40

UVA580-Critical Mass的相关文章

UVA 580 - Critical Mass(DP)

题目链接:580 - Critical Mass 题意:一个栈,里面可以放L和U,有三个连续的U就是不安全的,问共有几种不安全的情况 思路:dp,dp[i][j][k],表示放到第i个,最后两个状态为j,k表示有没有出现不安全.然后去记忆化搜索一下就可以了 然后还有一种做法是,先考虑安全的情况,在用总情况(1<<n 种)减去安全的情况,安全的情况的递推方式很容易dp[i]表示放第i个, dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]. 不过这题都没给数据范围

uva 580 - Critical Mass(dp)

题目链接:uva 580 - Critical Mass 题目大意:给定一个栈,向栈里连续添加n次,每次可以添加U或者L,如果出现连续三个U则为不安全,问有多少种不安全的可能. 解题思路:先求出安全的,用总数减去安全的即为答案. dp[i][j]表示以第i个位置结尾时,有末尾有j个连续的U. 还有一种解法,dp[i]表示第i个位置以L结尾的总数,dp[i] = dp[i-1] + dp[i-2] + dp[i-3]; 解法一: #include <cstdio> #include <cs

UVA 580 Critical Mass

https://vjudge.net/problem/UVA-580 题意:一堆U和L,用n个排成一排,问至少有3个U放在一起的方案数 f[i] 表示 至少有3个U放在一起的方案数 g[i] 表示没有3个U放在一起的方案数 状态转移: g[i]=2^i-f[i] 枚举 第一次出现3个U的位置j,那么j-1一定是L,前j-2个一定没有3个U放在一起,第j+2个往后随便放 所以 f[i]=2^(i-3) + Σ g[i-2]*2^(i-j-2) 2^(i-3) 是当i=1时,后面的Σ从2开始 #in

uva 580 Critical Mass(递推)

#include<stdio.h> #include<algorithm> #include<string.h> #include<iostream> using namespace std; typedef unsigned long long ull; int main() { int i,j,n; ull f[35],a[35],g[35]; a[0]=1; for(i=1;i<=30;i++) { a[i]=a[i-1]*2; } f[0]=f

This Bag Reached Critical Mass And Everyone Moved On

The study showed that most vendors did not return to use reusable bags for shopping. No tylkokrok in the right direction, but please ekoszt -? Do customers too. You can think about the problem you need to do to buy plastic bags when we go shopping. W

UVa 580 (递推) Critical Mass

题意: 有两种盒子分别装有铀(U)和铅(L),现在把n个盒子排成一列(两种盒子均足够多),而且要求至少有3个铀放在一起,问有多少种排放方法. 分析: n个盒子排成一列,共有2n中方案,设其中符合要求的为f(n)种. f(n)可由下面两种情况递推出来: 前n-1个盒子的摆放满足要求,则第n个盒子可以摆放U也可以摆放L,共有2×f(n-1)中方案 前n-1个盒子不满足要求,要使前n个盒子满足要求,则第n-2.n-1.n个盒子一定是U.又因为前面的假设,所以第n-3个盒子一定是L(否则前n-1个盒子满

UVa 580 - Critical Mass(递推)

链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=521 题意: 有一些装有铀(用U表示)和铅(用L表示)的盒子,数量均足够多.要求把n(n≤30)个盒子放成一行,但至少有3个U放在一起,有多少种放法?例如,n=4, 5时答案分别为3, 8. 分析: 设答案为f(n).既然有3个U放在一起,可以根据"最左边的3个U"

《iOS用户体验》总结与思考-改动版

假设转载此文.请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢. 前言: 本文是在阅读<ios用户体验>的过程中,记录的总结和个人的感受思考.不免有错误之处,恳请读者指正,在以下留言就可以. 第一章:ios人机界面指南概述 1.智能手机的特点:大尺寸.高分辨率.强大的计算能力 2.签名交互:滚动轮.导航键.按键和硬键盘.软键盘.触控笔.触屏.输入特性又被称为"签名交互",用户能够通过输入方式

《从0到1》笔记 第三章 所有成功的企业都是不同的

第三章 所有成功的企业都是不同的----科技企业的创新就是为了垄断,成功的科技企业都是垄断式的. 在商界,钱就是一切,或至少是非常重要.垄断者除了想着赚钱外还有余力想其它事情,而非垄断者就不行.在完全竞争中,企业着眼于短期利益,不可能对未来进行长期规划.要想企业从每日的生成竞赛中解脱出来,唯一的方法就是:获取垄断利润. 企业成功的原因各有不同:每个垄断企业都是靠解决独一无二的问题而获得垄断地位:而企业失败的原因却相同:它们都无法逃脱竞争. 国内的垄断者,如百度,解决了中文搜索的问题,垄断了搜索的

【转帖】You and Your Research

Richard Hamming ``You and Your Research'' Transcription of the Bell Communications Research Colloquium Seminar 7 March 1986 J. F. Kaiser Bell Communications Research 445 South Street Morristown, NJ 07962-1910 [email protected] At a seminar in the Bel