zoukankan      html  css  js  c++  java
  • 洛谷 P3414 SAC#1

    题目背景

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

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

    题目描述

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

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

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

    输入格式

    输入仅包含一个整数n。

    输出格式

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

    说明/提示

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

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

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

    代码

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<math.h>
    using namespace std;
    
    long long ksm(long long n,long long m,long long k)
    {
        if(m==0) return 1;
        
        long long z=ksm(n,m>>1,k);
        
        z=1ll*z*z%k;//不可与if的判断互换顺序,防止多乘一次n
        
        if(m%2==1)
        {
            z=1ll*z*n%k;
        }
        
        return z;
    }
    
    int main(void)
    {
        long long n,ans_j,ans_o,ans_all;
        
        scanf("%lld",&n);
        
        ans_j=ksm(2,n-1,6662333);
        
        printf("%lld
    ",ans_j);
        
        return 0;
    }

    复习:C(n,0)+C(n,1)+C(n,2)+C(n,3)+……+C(n,n)=2^n;…………①

    C(n,0)-C(n,1)+C(n,2)-C(n,3)+……+(-1)^n*C(n,n)=0;…………②

    证明:在(a+b)^n中,它的展开式的每一项为C(n,i)*a^(n-i+1)*b^(i-1) ,那么,当a=1,b=1时,即得:①式

               同理,当a=1,b=-1时,即得②式

    则(①+②)/2,即可得到:C(n,0)+C(n,2)+C(n,6)+…………+C(n,2k)(k∈N*)= 2^(n-1)

    即为本题的答案。

    本题的幂运算不用多说,应该用快速幂进行简化。

     

  • 相关阅读:
    MySQL数据库事务隔离级别(Transaction Isolation Level)
    getParameter() getInputStream()和getReader() 区别
    Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart
    解决count distinct多个字段的方法
    表的连接查询
    使用Nexus搭建Maven代理仓库
    来测试下你的JAVA编程能力
    JAVA编程能力提升学习图
    负载均衡各个算法JAVA诠释版
    从零开始学领域驱动设计(二)
  • 原文地址:https://www.cnblogs.com/jd1412/p/12510824.html
Copyright © 2011-2022 走看看