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

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

    本题的任务是:对于给定的 n 和 m ,求不发生爆炸的放置核物质的方案总数。

    【输入】

    两个正整数 n 和 m ,之间用一个空格隔开。

    【输出】

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

    【样例输入】

    4 3

    【样例输出】

    13

    递归,上代码

     1 #include<iostream>
     2 using namespace std;
     3 int m,n,sum=0;
     4 void make(int cur,int lx)
     5 {
     6     if(cur==n+1)
     7     {
     8         sum++;
     9         return;
    10     }
    11     if(lx<=m-1)
    12         make(cur+1,lx+1);
    13     make(cur+1,1);
    14 }
    15 int main()
    16 {
    17     cin>>n>>m;
    18     make(1,1);
    19     cout<<sum;
    20     return 0;
    21 }

        不知怎么回事,    网                           站就是不给我过

             气                 得                           我

             想                 砸                           电脑,我写的

             程                 序                           哪

               里                 不对了?我明明       样例过了!!!

    别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动别激动

    刚刚我用的是递归,我换个思路,用递推试一试。。。

     1 #include<iostream>
     2 using namespace std;
     3 long long ans,a[60][60];
     4 int n,m;
     5 int main()
     6 {
     7     cin>>n>>m;
     8     a[1][0]=1;
     9     a[1][1]=1;
    10     for(int i=2;i<=n;i++)
    11     {
    12         for(int j=0;j<m;j++)
    13         a[i][0]+=a[i-1][j];
    14         for(int j=1;j<m;j++)
    15         a[i][j]=a[i-1][j-1];
    16     }
    17     for(int i=0;i<m;i++)
    18     ans+=a[n][i];
    19     cout<<ans;
    20     return 0;
    21 }

           历                     尽千辛万苦

         我终               于                   让

       网    站             给

      我过了,           真                   的

    好            不             容易啊!!

  • 相关阅读:
    如何编写属于自己的事件集合
    Android文件操作(可应用于JAVA)
    Share Point 2007 copy webservices overwrite exist file
    cnBlog的windows live writer 客户端配置
    VS 2012 找回消失的“创建单元测试”
    Oracle函数参考
    哲理小故事(一)
    输入框信息提示
    实现记住用户登陆名
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/jiaweigao/p/9609088.html
Copyright © 2011-2022 走看看