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)

    即为本题的答案。

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

     

  • 相关阅读:
    Windows API
    c# 各类型数据库连接字符串格式
    [C#/C++]C#调用非托管DLL的APIs
    (F#) How to enable F# template working under Visual Studio 2010 Shell.
    ubuntu文件、目录操作基本命令
    javascript curry
    C#中组件与控件的主要区别是什么?
    下拉菜单
    js 尺寸和位置 笔记
    $.each
  • 原文地址:https://www.cnblogs.com/jd1412/p/12510824.html
Copyright © 2011-2022 走看看