zoukankan      html  css  js  c++  java
  • Tyvj P3119 核电站问题 动态规划

    P3119 核电站问题
    时间: 1000ms / 空间: 65536KiB / Java类名: Main

    描述

      一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。 
      任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数 

    输入格式

      输入文件只一行,两个正整数N,M( 1 

    输出格式

      输出文件只有一个正整数S,表示方案总数。

    测试样例1

    输入

    4 3

    输出

    13
    题解:
    动态规划
    f[i][j]为到第i个,放了j个爆炸物的方案数。
    数学方法不行QAQ
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define LL long long
     4 LL f[55][6];
     5 int main()
     6 {
     7     freopen("nucle.in","r",stdin);
     8     freopen("nucle.out","w",stdout);
     9     LL ans,n,m,i,j,k;
    10     scanf("%lld %lld",&n,&m);
    11     memset(f,0,sizeof(f));//f[i][j]为到第i个,放了j个爆炸物的方案数.
    12     f[1][0]=f[1][1]=1;
    13     for(i=2;i<=n;i++)
    14     {
    15         for(j=0;j<m;j++)f[i][0]+=f[i-1][j];
    16         for(j=0;j<m;j++)f[i][j]+=f[i-1][j-1];
    17     }
    18     ans=0;
    19     for(i=0;i<m;i++)ans+=f[n][i];
    20     printf("%lld",ans);
    21     /*错误的数学方法
    22     for(i=1;i<=n;i++)ans*=2;
    23     k=n-m+1;
    24     if(k<=0)printf("%lld",ans);
    25     else
    26     {
    27         for(i=k;i>=1;i--)ans-=i;
    28         printf("%lld",ans);
    29     }*/
    30     return 0;
    31 }
  • 相关阅读:
    金色酒类企业dedecms模板
    hdu 1533 最小费用最大流
    计算几何算法
    博弈总结
    图搜索总结
    一般图匹配题集 转自夏天的风
    极大极小过程题集 转自夏天的风
    dancing links 题集转自夏天的风
    网络流题集转自夏天的风
    nyoj 547 优先队列
  • 原文地址:https://www.cnblogs.com/Var123/p/5333280.html
Copyright © 2011-2022 走看看