• ZOJ3549 Little Keng(快速幂)


    转载请注明出处: http://www.cnblogs.com/fraud/           ——by fraud

    Little Keng

    Time Limit: 2 Seconds      Memory Limit: 65536 KB

    Calculate how many 0s at the end of the value below:
    1n + 2n + 3n + ... + mn

    Input

    There are multiple cases. For each cases, the input containing two integers mn. (1 <= m <= 100 , 1 <= n <= 1000000)

    Output

    One line containing one integer indicatint the number of 0s.

    Sample Input

    4 3

    Sample Output

    2

    看完这题,感觉0的位数不会很多,拿Java大数跑了一部分数据,发现就直接取1e9没什么问题,然后就直接搞了。

     1 /**
     2  * code generated by JHelper
     3  * More info: https://github.com/AlexeyDmitriev/JHelper
     4  * @author xyiyy @https://github.com/xyiyy
     5  */
     6 
     7 #include <iostream>
     8 #include <fstream>
     9 
    10 //#####################
    11 //Author:fraud
    12 //Blog: http://www.cnblogs.com/fraud/
    13 //#####################
    14 //#pragma comment(linker, "/STACK:102400000,102400000")
    15 #include <iostream>
    16 #include <sstream>
    17 #include <ios>
    18 #include <iomanip>
    19 #include <functional>
    20 #include <algorithm>
    21 #include <vector>
    22 #include <string>
    23 #include <list>
    24 #include <queue>
    25 #include <deque>
    26 #include <stack>
    27 #include <set>
    28 #include <map>
    29 #include <cstdio>
    30 #include <cstdlib>
    31 #include <cmath>
    32 #include <cstring>
    33 #include <climits>
    34 #include <cctype>
    35 
    36 using namespace std;
    37 #define rep2(X, L, R) for(int X=L;X<=R;X++)
    38 typedef long long ll;
    39 
    40 //
    41 // Created by xyiyy on 2015/8/5.
    42 //
    43 
    44 #ifndef ICPC_QUICK_POWER_HPP
    45 #define ICPC_QUICK_POWER_HPP
    46 typedef long long ll;
    47 
    48 ll quick_power(ll n, ll m, ll mod) {
    49     ll ret = 1;
    50     while (m) {
    51         if (m & 1) ret = ret * n % mod;
    52         n = n * n % mod;
    53         m >>= 1;
    54     }
    55     return ret;
    56 }
    57 
    58 #endif //ICPC_QUICK_POWER_HPP
    59 
    60 class TaskA {
    61 public:
    62     void solve(std::istream &in, std::ostream &out) {
    63         int m, n;
    64         while (in >> m >> n) {
    65             ll ans = 0;
    66             rep2(i, 1, m)ans += quick_power(i, n, 1e9);
    67             int cnt = 0;
    68             while (ans) {
    69                 if (ans % 10 != 0)break;
    70                 cnt++;
    71                 ans /= 10;
    72             }
    73             out << cnt << endl;
    74         }
    75     }
    76 };
    77 
    78 int main() {
    79     std::ios::sync_with_stdio(false);
    80     std::cin.tie(0);
    81     TaskA solver;
    82     std::istream &in(std::cin);
    83     std::ostream &out(std::cout);
    84     solver.solve(in, out);
    85     return 0;
    86 }
  • 相关阅读:
    杜教筛学习笔记
    AtCoder Beginner Contest 188 F
    求和公式
    洛谷P4848 崂山白花蛇草水 权值线段树+KDtree
    二次剩余学习笔记
    Miller Rabin素数检测与Pollard Rho算法
    半平面交学习笔记
    凸包习题总结
    多项式半家桶
    CF997解题报告
  • 原文地址:https://www.cnblogs.com/fraud/p/4733463.html
Copyright © 2020-2023  润新知