zoukankan      html  css  js  c++  java
  • POJ 1953 World Cup Noise(递推)

    https://vjudge.net/problem/POJ-1953

    题意:
    输入一个n,这n位数只由0和1组成,并且不能两个1相邻。计算共有多少种排列方法。

    思路:
    递推题。

    首先a[1]=2,a[2]=3是显而易见的,接下来计算分析到第n位时的排列方法数,如果第n-1位数为1,那么第n位只能为0,那么此时有g[n-1]种方法(g[n-1]表示第n-1位为1的数量)。如果第n-1位为0,那么此时有2*f[n-1]种方法(f[n-1]表示第n-1位为0的数量)。

    所以,两者相加=g[n-1]+2*f[n-1]=a[n-1]+f[n-1]=a[n-1]+a[n-2]。(n-1位为0说明n-2既可以为0,又可以为1,所以f[n-1]=a[n-2])。

     1 #include<iostream> 
     2 using namespace std;
     3 
     4 const int maxn = 50;
     5 
     6 int n;
     7 int a[maxn];
     8 
     9 void init()
    10 {
    11     a[1] = 2;
    12     a[2] = 3;
    13     for (int i = 3; i <= 50; i++)
    14     {
    15         a[i] = a[i - 1] + a[i - 2];
    16     }
    17 }
    18 
    19 int main()
    20 {
    21     //freopen("D:\txt.txt", "r", stdin);
    22     int T;
    23     scanf("%d", &T);
    24     init();
    25     for (int kase = 1; kase <= T; kase++)
    26     {
    27         scanf("%d", &n);
    28         printf("Scenario #%d:
    %d
    
    ", kase, a[n]);
    29     }
    30 }
  • 相关阅读:
    axios 封装
    Git 常用命令行
    React Native 开发环境搭建
    React Native 组件分类
    日期插件rolldate.js的使用
    单图片上传
    使用css完成物流进度的样式
    搜索过滤 以及排序
    v-for的使用方法
    v-if 和v-show 用法
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6515310.html
Copyright © 2011-2022 走看看