zoukankan      html  css  js  c++  java
  • 果实计数

                                                                                    果实计数
                                 难度级别:C; 运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B
    试题描述
    淘淘家有棵奇怪的苹果树,这棵树共有n+1层,标号为0~n。这棵树第0层只有一个节点,为根节点。已知这棵树为b叉树,且保证是一颗满b叉树。如图为一颗满3叉树。

    现在,该树第n层的每个节点上都结出了一个苹果,淘淘想知道共结了多少苹果。由于数量可能很大,答案要求输出mod k后的结果。

    输入
    给出第1层的节点数b和层数n和k
    输出
    输出苹果数mod k后的结果。
    输入示例
    2 10 9
    输出示例
    7
    其他说明
    30%的数据保证:b<=100,n<=10, k<=100.
    100%的数据保证:b<2^31,n<2^31,k<=2^15

    一共有两方法

    一,

     1 #include<iostream>
     2 using namespace std;
     3 long long x,a,b,c,s=1;
     4 int main()
     5 {
     6     cin>>a>>b>>c;
     7     x=a;
     8     while(b>0)
     9     {
    10         if(b%2==1) s=(s*x)%c;
    11         b/=2;
    12         x=(x*x)%c; 
    13     }
    14     cout<<s;
    15 }

    二,

    #include<iostream>
    using namespace std;
    long long x,a,b,c,s=1;
    int main()
    {
        cin>>a>>b>>c;
        x=a;
        for(int i=0;i<=31;i++)
        {
            if((b&(1<<i))>>i==1) s=(s*x)%c;
            x=(x*x)%c;
        }
    }

    建议上面的。

    快速幂。呵呵呵呵。。。。。。

  • 相关阅读:
    【洛谷P1082】同余方程
    【总结】数论相关
    【模板】扩展欧拉定理
    【模板】贝祖定理
    【SPOJ116】Intervals
    【CF1141E】Superhero Battle
    【CF1141F2】Same Sum Blocks
    【CF1141F1】Same Sum Blocks
    【CF1141G】Privatization of Roads in Treeland
    【洛谷P1198】最大数
  • 原文地址:https://www.cnblogs.com/LZHE/p/5857389.html
Copyright © 2011-2022 走看看