zoukankan      html  css  js  c++  java
  • HDU 4990 Reading comprehension(BestCoder Round #8)

    Problem Description:
    Read the program below carefully then answer the question.
    #pragma comment(linker, "/STACK:1024000000,1024000000")
    #include <cstdio>
    #include<iostream>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include<vector>

    const int MAX=100000*2;
    const int INF=1e9;

    int main()
    {
      int n,m,ans,i;
      while(scanf("%d%d",&n,&m)!=EOF)
      {
        ans=0;
        for(i=1;i<=n;i++)
        {
          if(i&1)ans=(ans*2+1)%m;
          else ans=ans*2%m;
        }
        printf("%d ",ans);
      }
      return 0;
    }
     
    Input:
    Multi test cases,each line will contain two integers n and m. Process to end of file.
    [Technical Specification]
    1<=n, m <= 1000000000
     
    Output:
    For each case,output an integer,represents the output of above program.
     
    Sample Input:
    1 10
    3 100
     
    Sample Output:
    1
    5
     
    通过观察发现当n为偶数时,第n项为a = (2^(n+1)-2)/3;当n为奇数时,第n项为a = (2^(n+1)-1)/3,由于要对m取余,那么结果ans = a/3%m,这里要用到数模计算公式:a/b%m = a%(b*m)/b,所以ans = a%3m/3。
     
    #include<stdio.h>
    #include<string.h>
    #include<queue>
    #include<math.h>
    #include<stdlib.h>
    #include<algorithm>
    using namespace std;
    
    const int N=1e4+10;
    const int INF=0x3f3f3f3f;
    const int MOD=1e9+7;
    
    typedef long long LL;
    
    LL Solve(LL a, LL b, LL m) ///快速幂
    {
        LL t, sum;
    
        t = a % m;
        sum = 1;
    
        while (b)
        {
           if(b&1) sum = (sum*t)%m;
    
           t = (t*t)%m;
           b /= 2;
        }
    
        return sum;
    }
    
    int main ()
    {
        LL n, m, ans;
    
        while (scanf("%lld %lld", &n, &m) != EOF)
        {
            ans = Solve(2, n+1, 3*m);
    
            if (n % 2 == 0) ans = (ans-2)/3;
            else ans = (ans-1)/3;
    
            printf("%lld
    ", ans);
        }
    
        return 0;
    }
  • 相关阅读:
    requirejs 加载其它js
    springmvc 国际化
    企业QQ客服的添加
    js验证身份证号码
    JQUERY获取当前页面的URL信息
    lnmp、lamp、lnmpa一键安装包(Updated: 2015-10-25)
    php生成代金券码
    JS控制文本框textarea输入字数限制的方法
    ps 换图片的背景颜色
    读取数据库配置文件
  • 原文地址:https://www.cnblogs.com/syhandll/p/4919915.html
Copyright © 2011-2022 走看看