zoukankan      html  css  js  c++  java
  • nylg 640 Geometric Sum

    Geometric Sum

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:3
     
    描述
    Compute (a + a^2 + … + a^n) mod m.(a+a2+an)mod
     
    输入
    Three integers a,n,m.
    (1≤a,n,m≤10^18)
    It ends with EOF.
    输出
    The only integer denotes the result.
    样例输入
    2 2 1000000000
    样例输出
    6 
    来源
    Lepus
     矩阵里也求过a+a^2+a^3+a^4.......
     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<cstring>
     4 #include<cstdlib>
     5 #include<vector>
     6 using namespace std;
     7 typedef long long LL;
     8 
     9 LL sum_mod(LL a,LL n,LL p)
    10 {
    11     LL ans=0;
    12     n=n%p;
    13     while(n)
    14     {
    15         if(n&1)
    16         {
    17             ans=ans+a;
    18             if(ans>=p) ans=ans-p;
    19         }
    20         n=n>>1;
    21         a=(a+a)%p;
    22     }
    23     return ans;
    24 }
    25 LL solve(LL a,LL n,LL p)
    26 {
    27    LL p1=a,p2=a,ans,i;
    28    vector<LL>Q;
    29    while(n)
    30    {
    31        ans=(n&1);
    32        Q.push_back(ans);
    33        n=n>>1;
    34    }
    35    ans=Q.size()-2;
    36    for(i=ans;i>=0;i--)
    37    {
    38        p1=sum_mod(p1,p2+1,p);
    39        p2=sum_mod(p2,p2,p);
    40        if(Q[i]==1)
    41        {
    42            p2=sum_mod(p2,a,p);
    43            p1=(p1+p2)%p;
    44        }
    45    }
    46    return p1;
    47 }
    48 int main()
    49 {
    50     LL a,n,p;
    51     while(scanf("%lld%lld%lld",&a,&n,&p)>0)
    52     {
    53         if(n==1){
    54             printf("%lld
    ",a%p);
    55             continue;
    56         }
    57         LL ans=solve(a,n,p);
    58         printf("%lld
    ",ans);
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    文件操作
    需特别注意的地方(关于内存机制)
    数据类型的汇总和功能
    python之http请求及响应
    8.centos7进入单用户
    Android Studio使用总结
    django之数据库models
    django之错题集
    python之mysql安装配置
    python之pycharm的debug调试使用
  • 原文地址:https://www.cnblogs.com/tom987690183/p/3719687.html
Copyright © 2011-2022 走看看