• 考试整理


    由于个人能力有限,只能AC第一题,故现放第一题的题解

     

    正如钟皓曦所说:组合数问题都是好题

    直接运用排列组合的知识

    有n-m个不放的

    所以有n-m+1个空可以去插花

    所以是Cn-m+1m

    又因为花的序号不同所以答案为

    Cn-m+1mxAmm

    经过化简

    【(n-m+1)!/(m!*(n-2m+1)!】*m!

    (n-2m+2)*(n-2m+3)*.....*(n-m+1)

    还有就是别忘记取模

    Code:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<iomanip>
    #include<string>
    #include<algorithm>
    #include<cstdlib>
    #include<queue>
    #include<stack>
    using namespace std;
    inline long long read() 
    {
        long long X=0,w=1; 
        char c=getchar();
        while(c<'0'||c>'9')
        { 
            if (c=='-')
            {
                w=-1; 
            } 
            c=getchar();
        }
        while(c>='0'&&c<='9')
        {
            X=(X<<3)+(X<<1)+c-'0';
            c=getchar();
        } 
        return X*w;
    }
    long long type,n,m,p,ans=1;
    int main()
    {
        freopen("ilove.in","r",stdin);
        freopen("ilove.out","w",stdout);
        type=read();n=read();m=read();p=read();
        for(int i=n-2*m+2;i<=n-m+1;i++)
        {
            ans=ans*i%p;
        }
        printf("%lld",ans);
        return 0;
    }
  • 相关阅读:
    Redis事务和锁
    11/6笔记 补充(Redis持久化,RDB&&AOF)
    11/6随笔
    Redis 安装教程
    Redis通用指令和第一个Jedis程序的实现
    Redis学习第二天
    SpringBoot学习笔记
    1000行代码手写服务器
    log4j创建实例异常
    寒假阅读人月神话3
  • 原文地址:https://www.cnblogs.com/gongcheng456/p/11082994.html
Copyright © 2020-2023  润新知