P3414 SAC#1 - 组合数

题目背景

本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。

寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。

题目描述

辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!

今天他萌上了组合数。现在他很想知道simga(C(n,i))是多少;其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数。

由于答案可能很大,请输出答案对6662333的余数。

输入输出格式

输入格式:

输入仅包含一个整数n。

输出格式:

输出一个整数,即为答案。

输入输出样例

输入样例#1: 复制

3
输出样例#1: 复制

4

说明

对于20%的数据,n <= 20;

对于50%的数据,n <= 1000;

对于100%的数据,n <= 1 000 000 000 000 000 000 (10^18)

排列组合(卢卡斯定理)能得50分、、

n的范围太大,数组开不开,因此就不能用lus定理了,我们应该在找一种做法

                        #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 1000000
#define mod 6662333
#define ll long long
using namespace std;
int n,ans,jie[N];
int read()
{
    ,f=; char ch=getchar();
    ;ch=getchar();}
    +ch-',ch=getchar();
    return x*f;
}
ll qpow(ll a,ll b,ll p)
{
    ll res=;
    while(b)
    {
        ) res=res*a%p;
        a=a*a%p;b>>=;
    }return res;
}
ll C(ll n,ll m,ll p)
{
    ;
    ,p)%p;
}
ll Lus(ll n,ll m,ll p)
{
    ) ;
    return Lus(n/p,m/p,p)*C(n%p,m%p,p);
}
int main()
{
    n=read();jie[]=;
    ;i<=n;i++)
     jie[i]=1ll*jie[i-]*i%mod;
    ;i<=n;i+=)
     ans=(ans+Lus(n,i,mod))%mod;
    printf("%d",ans);
    ;
}
                    

50分卢卡斯定理

打表找规律

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 1000000
#define mod 6662333
#define ll long long
using namespace std;
int n,ans,jie[N];
int read()
{
    ,f=; char ch=getchar();
    ;ch=getchar();}
    +ch-',ch=getchar();
    return x*f;
}
ll qpow(ll a,ll b,ll p)
{
    ll res=;
    while(b)
    {
        ) res=res*a%p;
        a=a*a%p;b>>=;
    }return res;
}
ll C(ll n,ll m,ll p)
{
    ;
    ,p)%p;
}
ll Lus(ll n,ll m,ll p)
{
    ) ;
    return Lus(n/p,m/p,p)*C(n%p,m%p,p);
}
int main()
{
    jie[]=;
    ;i<;i++)
     jie[i]=1ll*jie[i-]*i%mod;
    ;n<=;n++)
    {
        ans=;
        ;i<=n;i+=)
         ans=(ans+Lus(n,i,mod))%mod;
        printf("%d %d\n",n,ans);
    }
    ;
}

我们可以发现,ans=2^(n-1),因此用快速幂就可以搞定了

n输入的时候要用long long、、(老是RE。。。)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod 6662333
#define ll long long
using namespace std;
long long n;int ans;
ll read()
{
    ll x=,f=; char ch=getchar();
    ;ch=getchar();}
    +ch-',ch=getchar();
    return x*f;
}
int qpow(int a,ll b,int p)
{
    ;
    while(b)
    {
        ) res=1ll*res*a%p;
        a=1ll*a*a%p;b>>=;
    }return res;
}
int main()
{
    n=read();
    ans=qpow(,n-,mod);
    printf("%d",ans);
    ;
}

洛谷——P3414 SAC#1 - 组合数的更多相关文章

  1. 洛谷P3414 SAC#1 - 组合数

    P3414 SAC#1 - 组合数 218通过 681提交 题目提供者ProjectWTA 标签 难度普及/提高- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 讨论区出bug ...

  2. P3414 SAC#1 - 组合数 题解

    https://www.luogu.org/problemnew/show/P3414(题目传送) 这道题提醒大家一定要认真审题.看清楚后发现n的数据范围稍微小于long long类型的范围(看不清被 ...

  3. P3414 SAC#1 - 组合数

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...

  4. 洛谷P4492 [HAOI2018]苹果树(组合数)

    题意 题目链接 Sol 有点自闭,.我好像对组合数一窍不通(~~~~) Orz shadowice // luogu-judger-enable-o2 #include<bits/stdc++. ...

  5. 洛谷——P1869 愚蠢的组合数

    P1869 愚蠢的组合数 题目描述 最近老师教了狗狗怎么算组合数,狗狗又想到了一个问题... 狗狗定义C(N,K)表示从N个元素中不重复地选取K个元素的方案数. 狗狗想知道的是C(N,K)的奇偶性. ...

  6. 洛谷 P2518 [HAOI2010]计数 (组合数)

    题面 luogu 题解 本来想练数位dp的,结果又忍不住写了组合数.. 去掉一个\(0\)可以看作把\(0\)移到前面去 那么题目转化为 \(n\)有多少个排列小于\(n\) 强制某一位比\(n\)的 ...

  7. 洛谷P3926 SAC E#1 - 一道不可做题 Jelly【模拟/细节】

    P3926 SAC E#1 - 一道不可做题 Jelly [链接]:https://www.luogu.org/problem/show?pid=3926 题目背景 SOL君(炉石主播)和SOL菌(完 ...

  8. 洛谷—— P1869 愚蠢的组合数

    https://www.luogu.org/problemnew/show/1869 题目描述 最近老师教了狗狗怎么算组合数,狗狗又想到了一个问题... 狗狗定义C(N,K)表示从N个元素中不重复地选 ...

  9. luogu P3414 SAC#1 - 组合数(组合数学)

    题意 求sigma(C(n,i))其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数. 由于答案可能很大,请输出答案对6662333的余数. (n<=101 ...

随机推荐

  1. Tomcat报错java.lang.ClassNotFoundException: 2localhost.org.apache.juli.FileHandler

    Can't load log handler "1catalina.org.apache.juli.FileHandler" java.lang.ClassNotFoundExce ...

  2. Zyan 一个通信框架

    原文地址 本文示例 Zyan是一个简单直观的分布式应用程序开发框架. 以下是Zyan项目的简要概述. 架构图: Zyan一般由客户端和服务端组成.服务端(以组件的形式)提供服务,客户端远程调用服务端的 ...

  3. windows修改文件的修改或者创建时间

    https://www.online-tech-tips.com/computer-tips/how-to-change-the-last-modified-date-creation-date-an ...

  4. Spring Boot 启动报错:LoggingFailureAnalysisReporter

    17:57:19: Executing task 'bootRun'... Parallel execution with configuration on demand is an incubati ...

  5. 【BZOJ】1754: [Usaco2005 qua]Bull Math

    [算法]高精度乘法 #include<cstdio> #include<algorithm> #include<cstring> using namespace s ...

  6. Docker explainations

    What does docker run --link mean, what's the usage? link 是在两个contain之间建立一种父子关系,父container中的web,可以得到子 ...

  7. MS16-032提权正确方法

    原版MS16-032提权会Spawn一个System Shell出来,只能通过Remote Desktop获取.这里修改exploit,直接反弹Shell.注意MS16-032依赖 thread ha ...

  8. php中使用static方法

    <?php class Char{ public static $number = 0; public static $name; function __construct($what){ se ...

  9. nsa工程式(fb.py): perl6调用并修改IP

    use v6; if (@*ARGS != 1) {say 'Use:scan.p6 ip';exit;} my $check_ip = @*ARGS[0]; $check_ip = '<val ...

  10. python string 对齐文本的几个方法

    用rjust().ljust()和center()方法对齐文本