• Hdu 5451 Best Solver (2015 ACM/ICPC Asia Regional Shenyang Online) 暴力找循环节 + 递推


    题目链接:

      Hdu  5451  Best Solver

    题目描述:

      对于,给出x和mod,求y向下取整后取余mod的值为多少?

    解题思路:

      x的取值为[1, 232],看到这个指数,我的心情是异常崩溃的。(吐血。。。。。。) 可是仔细观察,它指数大,可是mod小啊,它吓人,可是可以暴力搞啊!!

      这个题目一个难点就是要向下取整求余,详解见传送门,本题是向下取整,也就是向上取整加一。

      还有就是指数太大,要找到循环节,其实由于mod小,循环节并没有太大,暴力跑就ok啦!

     此刻内心是崩溃的

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 typedef long long LL;
     8 const LL maxn = 47000;
     9 LL r[maxn], ans[maxn], x, m;
    10 
    11 LL Pow (LL a, LL n, LL mod)
    12 {
    13     LL res = 1;
    14     while (n)
    15     {
    16         if (n % 2)
    17             res = (res * a) % mod;
    18         a =(a * a) % mod;
    19         n /= 2;
    20     }
    21     return res;
    22 }
    23 
    24 void init ()
    25 {
    26     ans[0] = 2;
    27     ans[1] = 10;
    28     for (int i=2; i<maxn; i++)
    29     {
    30         ans[i] = (10 * ans[i-1] - ans[i-2] + m) % m;
    31         if (ans[i-1]==ans[0] && ans[i]==ans[1])
    32         {
    33             r[m] = i - 1;
    34             return ;
    35         }
    36     }
    37 }
    38 
    39 LL solve ()
    40 {
    41     init ();
    42     LL k = (1 + Pow (2, x, r[m])) % r[m];
    43     return (ans[k] - 1 + m) % m;
    44 }
    45 
    46 int main ()
    47 {
    48     LL t;
    49     scanf ("%lld", &t);
    50     for (int i=1; i<=t; i++)
    51     {
    52         scanf ("%lld %lld", &x, &m);
    53         printf("Case #%d: %lld
    ", i, solve ());
    54     }
    55     return 0;
    56 }
    本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    测试用例设计方法
    软件测试--常考的证书
    fillder-----接口延时返回(新方法)
    测试工作之--adb代码
    设计测试用例的常用方法
    TFS2013 设置签出独占锁
    Sql Server (MSSQLSERVER) 服务无法启动
    Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
    C#使用redis学习笔记
    C#使用mybatis学习笔记
  • 原文地址:https://www.cnblogs.com/alihenaixiao/p/4830087.html
Copyright © 2020-2023  润新知