zoukankan      html  css  js  c++  java
  • poj_1995 Raising Modulo Numbers (快速幂)

    【题目链接】

      http://poj.org/problem?id=1995

    【算法】

    1. 基本快速幂(二进制思想)
    2. 注意两个int相乘可能溢出,加(long long)但是相乘不要加括号,不然会先溢出在类型转换
     1 #include <iostream>
     2 using namespace std;
     3 int z,m,h,cur,ans,a,b;
     4 void calc()
     5 {
     6     cin>>a>>b;
     7     cur = 1 % m;
     8     for(; b; b >>= 1) {
     9         if(b & 1) cur = (long long)cur * a % m;
    10         a = (long long)a * a % m;
    11     }
    12     ans = (long long)(ans+cur) % m;
    13 }
    14 int main()
    15 {
    16     cin>>z;
    17     while(z--)
    18     {
    19         ans = 0;
    20         cin>>m>>h;
    21         while(h--) calc();
    22         cout << ans%m << endl;
    23     }
    24 }
  • 相关阅读:
    腾讯云微服务
    docker 总结
    TDSQl
    腾讯云网络介绍
    openstack 搭建
    kvm2
    kvm
    ERA-interim数据下载
    ERA-interim
    win10软件使用指南备忘录
  • 原文地址:https://www.cnblogs.com/Willendless/p/9309225.html
Copyright © 2011-2022 走看看