zoukankan      html  css  js  c++  java
  • 曦皓的算式

    【题目描述】

    【输入描述】

    输入两个数N和M。

    【输出描述】

    输出一个数,表示答案 mod (109+7)的值。

    【输入样例】

    3 3

    【输出样例】

    56

    【数据范围及提示】

    对于50%的数据,1 ≤ N,M ≤ 1000;

    对于100%的数据,1 ≤ N,M ≤ 50000。

    源代码:
    
    #include<cstdio>
    #define LL long long //LL上瘾。
    #define INF 1000000007
    LL n,m;
    LL Count(LL X,LL S)
    {
        LL Number=1;
        while (S)
        {
            if (S&1)
              Number=Number*X%INF;
            X=X*X%INF;
            S>>=1;
        }
        return Number;
    }
    int main()
    {
        scanf("%I64d%I64d",&n,&m);
        LL Ans=m;
        for (LL a=2;a<=n;a++)
        {
            LL t=a;
            t=t*((Count(a,m)-1+INF)%INF)%INF;
            t=t*Count(a-1,INF-2)%INF;
            Ans=(Ans+t)%INF;
        }
        printf("%I64d",Ans);
        return 0;
    }
    
    /*
        一道警醒世人的题。
        利用高中数学的等比数列就可以O(n)解得答案。
        做题还是要灵活运用,NOIP的知识点边框不要卡得太死。
        终于会乘法逆元了!那幸福的逆元告诉我的,我将告诉每一个模。
        乘法逆元:
            对于两个数A、B,若有Ax≡1(mod B),那么x就叫做A对B的乘法逆元。
        作用:
            举个例子:
                12/4 mod 7=3
                用乘法逆元转化一下,对于(4,7)的乘法逆元为2(4*2≡1(mod 7)),则有:
                    12*2 mod 7=3
                这样,除法就变为了乘法。
            但是有一点,(A,B)应互素,否则不存在逆元,不过一般NOIP都给素数。
        怎么求?
        利用费马小定理:
            a^(p-1)≡1(mod p)(p为素数)
            a*a^(p-2)≡1(mod p)
            那a^(p-2)不就是(a,p)的逆元嘛,快速幂解决。
    */
  • 相关阅读:
    mogodb 设置用户名密码认证
    axon mogoconfig
    ListUtils 对 list数据 分组 ,统计,求和 。。。
    jQuery 之 dom操作
    学习Java第二天
    字节跳动spring面试题,你能回答出几个
    CH340芯片选型
    Django的路由转换器的使用
    Vue之cli脚手架
    String中split(regex,limit)方法讲解
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5859649.html
Copyright © 2011-2022 走看看