zoukankan      html  css  js  c++  java
  • 题目1552:座位问题

    题目1552:座位问题

    时间限制:1秒
    内存限制:32 兆
    特殊判题:
    提交:373
    解决:120



     
    题目描述:

    计算机学院的男生和女生共n个人要坐成一排玩游戏,因为计算机的女生都非常害羞,男生又很主动,所以活动的组织者要求在任何时候,一个女生的左边或者右边至少有一个女生,即每个女生均不会只与男生相邻。现在活动的组织者想知道,共有多少种可选的座位方案。


    例如当n为4时,共有
    女女女女, 女女女男, 男女女女, 女女男男, 男女女男, 男男女女, 男男男男
    7种。

    输入:

    输入包含多组测试用例,每组测试用例仅包含一个整数n(1<=n<=1000)。

    输出:

    对于每组测试用例,输出一个数代表可选的方案数,为防止答案过大,答案对1000000007取模。

    样例输入:
      1
      2
      4
     
     
    样例输出:
       1
       2
       7
     
     
     
    法一:状态f[i][0]表示第i的位置为男生的i个人总的排座方式,f[i][1]表示第i的位置为女生的i个人总的排座方式。
    #include<stdio.h>
    const int MAXN=1001;
    const int M=1000000007;
    int f[1001][2];
    int dp()
    {
        f[0][0]=1;
        f[1][0]=1;
        f[1][1]=0;
        int sum=0;
        for (int i=2;i<MAXN;i++)
        {
            f[i][0]=(f[i-1][0]+f[i-1][1])%M;
            sum=sum+f[i-2][0];
            sum=sum % M;
            f[i][1]=sum;
        }
        return 0;    
    }
    int main()
    {
        dp();
        int n;
        while(scanf("%d",&n)!=EOF)
            printf("%d
    ",(f[n][0]+f[n][1])%M);
        return 0;
    }

    这是另一种方法,但是感觉不对,如何证明?

  • 相关阅读:
    6:定位锚点透明
    5:CSS元素类型
    4、css盒模型和文本溢出
    3、CSS属性组成和作用
    Linq to Xml读取复杂xml(带命名空间)
    经典语句
    服务器不能设置内容类型HTTP头信息后发送
    vs2015 VS-Visual Studio-IIS Express 支持局域网访问
    Mysql一些常用语句
    swfupload上传图片
  • 原文地址:https://www.cnblogs.com/Secontao/p/3618251.html
Copyright © 2011-2022 走看看