zoukankan      html  css  js  c++  java
  • 【HDOJ】4704 Sum

    数学题。f(n) = 2^(n-1) mod (1e9+7)。

     1 #include <cstdio>
     2 
     3 #define MAXN 100005
     4 
     5 char buf[MAXN];
     6 __int64 phi = 1e9+6;
     7 __int64 mod = 1e9+7;
     8 
     9 __int64 power2(__int64 n) {
    10     __int64 ret = 1, base = 2;
    11 
    12     --n;
    13     while (n) {
    14         if (n & 1)
    15             ret = ret * base % mod;
    16         base = base*base%mod;
    17         n >>= 1;
    18     }
    19     return ret;
    20 }
    21 
    22 int main() {
    23     __int64 tmp;
    24     __int64 i, j;
    25 
    26     while (scanf("%s", buf) != EOF) {
    27         tmp = 0;
    28         for (i=0; buf[i]; ++i) {
    29             tmp = 10*tmp + (buf[i]-'0');
    30             tmp %= phi;
    31         }
    32         tmp += phi;
    33         tmp = power2(tmp);
    34         printf("%I64d
    ", tmp);
    35     }
    36 
    37     return 0;
    38 }
  • 相关阅读:
    A % B Problem
    封锁阳光大学
    数楼梯
    海滩防御
    修复公路
    四子连棋
    口袋的天空
    兔子数
    逆序对&求逆序对
    【模板】单源最短路径*
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3864198.html
Copyright © 2011-2022 走看看