zoukankan      html  css  js  c++  java
  • 核电站问题

    【题目描述】

    核电站有N个放置核物质的坑,坑排列在一条直线上,如果连续M个坑中放置核物质,则会发生爆炸,所以在某些坑中可能不放置核物质。

    对于给定的N和M,询问不发生爆炸的放置核物质的方案总数。

    【输入描述】

    输入两个正整数N、M(1 < N < 50,2 ≤ M ≤ 5)。

    【输出描述】

    输出一个正整数,表示方案总数。

    【样例输入】

    4 3

    【样例输出】

    13

    源代码:
    
    #include<cstdio>
    long long ans,f[50][5];
    int n,m;
    int main()
    {
        scanf("%d%d",&n,&m);
        f[1][0]=f[1][1]=1;
        for (int a=2;a<=n;a++)
        {
            for (int b=0;b<m;b++)
              f[a][0]+=f[a-1][b];
            for (int b=1;b<m;b++)
              f[a][b]=f[a-1][b-1];
        }
        for (int a=0;a<m;a++)
          ans+=f[n][a];
        printf("%lld",ans);
        return 0;
    }
    
    /*
        设f[i][j]表示到第i个坑有长度为j的连续核物质,则有如下状态转移方程:
            f[i][j]=f[i-1][j-1](j>0)
                   =∑f[i-1][k](0<=k<m,j=0)。
    */
  • 相关阅读:
    LINUX
    DOCKER
    计算牛的数目
    计算a^3=b^3+c^3+d^3
    用递归计算C(m,n)
    A Mathematical Curiosity
    Who is lier?
    我的第一篇 实习报告
    R.java
    天气系统
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5929212.html
Copyright © 2011-2022 走看看