美文网首页
排排坐看电影

排排坐看电影

作者: 见习炼丹师 | 来源:发表于2018-06-16 20:48 被阅读0次
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <algorithm>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <utility>
#include <vector>
#define inf 0x3f3f3f3f
#define true 1    //用来标记男生和女生的常量
#define false 0
using namespace std;

int B(int N) //计算n的阶乘
{
    int answer = 1;
    for (int i = 1; i <= N; i++)
        answer *= i;
    return answer;
}
long long Count(long long n, long long m, int q, int qq)
{
    if (n > 0 && m > 0) //如果男生和女生都大于0
    {
        if (q== true) //如果当前位置的前一个人是男生,则该位置放男生或女生都可以
            return m * Count(n, m - 1, false, q) + n * Count(n - 1, m, true, q);
        else    //如果前一个位置是女生
        {
            if (qq == true) //且再前一个是男生,则该位置也是可以既放男生,或放女生
                return n * Count(n - 1, m, true, q)+ m * Count(n, m - 1, false, q);
            else       //再前一个也是女生,或者前面只有一个女生,(再前一个没有人也就是qq==-1)则该位置一定要放男生;
                return n * Count(n - 1, m, true, q) ;
        }
    }
    else if (n > 0) //如果女生没了,那剩下的n个男生可以形成n!种放法。
    {
        return B(n);
    }
    else if (m > 0) //如果在考虑当前位置的时候已经是只剩女生了
    {
        if (q == true) //如果前一个位置为男生则在该位置放女生
            return m * Count(n, m - 1, false, q);
        else  //如果前一个位置为女生则接下来的放置肯定是不符合题目要求的
            return 0;
    }
    else if (!n && !m) //所有人都放置完毕
        return 1;

}
int main()
{
    //freopen("input.txt","r",stdin);
    int w;
    long long n, m;
    long long a;
    scanf("%d", &w);
    while (w--)
    {
        scanf("%lld%lld", &n, &m);
        if (m > (n << 1) || !n) //如果 m>2n 或者n=0,就直接输出0
        {
            printf("0\n");
            continue;
        }
        a = n * Count(n - 1, m, true, -1) + m * Count(n, m - 1, false, -1);
        printf("%lld\n", a);
    }
    return 0;
}

相关文章

  • 排排坐看电影

  • 二号放映厅

    小时候最喜欢就是和大人一起去看电影,我们这个年纪大多数看的就是广场电影,搬个小板凳排排坐好。那个时候听到最多的一句...

  • 安妮:老公说他心中最美的画面是……

    和儿子排排坐,认真看电影。 老公站在房间门旁,看着我们,一直笑一直笑。 好多年前,老公告诉我说:“我心中最美的画面...

  • 排排坐

  • 排排坐

    排排坐 看TV 你也看 我也看 眼向前 手中握着茶罐玩 你们看 我俩是不是 同版 不同款

  • 排排坐

    排队本该是生活中一件最常见的事情。谁没有经历过各种各样的排队呢? 还清楚地记得第一次送孩子进幼儿园,...

  • 排排坐

    排排坐 阳光的故事 学员大家排排坐 一个一个很端正 有人嘻哈左右耳 有的木讷视前方 春日暖阳正旺盛 折射人人性格美...

  • 一日一画(207)

    ——大家一起排排坐。

  • 排排坐 20180301

  • 无题

    排排坐,吃果果 现在早已远离这个口号很久 也找不到这么一个口号 让我知道 做什么才好 麦当劳里,排排坐,吃汉堡 门...

网友评论

      本文标题:排排坐看电影

      本文链接:https://www.haomeiwen.com/subject/zbobeftx.html