zoukankan      html  css  js  c++  java
  • HDU 5793 A Boring Question (找规律 : 快速幂+乘法逆元)

    A Boring Question

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 865    Accepted Submission(s): 534

    Problem Description
    There are an equation.
    0k1,k2,kmn1j<m(kj+1kj)%1000000007=?
    We define that (kj+1kj)=kj+1!kj!(kj+1kj)! . And (kj+1kj)=0 while kj+1<kj.
    You have to get the answer for each n and m that given to you.
    For example,if n=1,m=3,
    When k1=0,k2=0,k3=0,(k2k1)(k3k2)=1;
    Whenk1=0,k2=1,k3=0,(k2k1)(k3k2)=0;
    Whenk1=1,k2=0,k3=0,(k2k1)(k3k2)=0;
    Whenk1=1,k2=1,k3=0,(k2k1)(k3k2)=0;
    Whenk1=0,k2=0,k3=1,(k2k1)(k3k2)=1;
    Whenk1=0,k2=1,k3=1,(k2k1)(k3k2)=1;
    Whenk1=1,k2=0,k3=1,(k2k1)(k3k2)=0;
    Whenk1=1,k2=1,k3=1,(k2k1)(k3k2)=1.
    So the answer is 4.
     
    Input
    The first line of the input contains the only integer T,(1T10000)
    Then T lines follow,the i-th line contains two integers n,m,(0n109,2m109)
     
    Output
    For each n and m,output the answer in a single line.
     
    Sample Input
    2 1 2 2 3
     
    Sample Output
    3 13
     
     
    Author
    UESTC
     
    Source
    Recommend
    wange2014

    题解:

    找规律...
    f(0,2)=1; f(1,2)=3; f(2,2)=7; f(3,2)=15
    f(0,3)=1; f(1,3)=4; f(2,3)=13; 
    f(0,4)=1; f(1,4)=5; f(2,4)=21;
    f(0,5)=1; f(1,5)=6; f(2,5)=31;

    f(n,m)=f(n-1,m)*m+1

    所以 f(n,m)=(m^(n+1)-1)/(m-1)

    //#include <iostream>
    #include<bits/stdc++.h>
    
    using namespace std;
    
    const long long mod=1000000007;
    long long ans,n,m;
    int T;
    long long poww(long long a,long long b)
    {
        long long ans=1;
        while(b)
        {
            if (b%2==1) ans=(ans*a)%mod;
            a=(a*a)%mod;
            b/=2;
        }
        return ans;
    }
    
    int main()
    {
       scanf("%d",&T);
       for(;T>0;T--)
       {
           scanf("%lld%lld",&n,&m);
           long long ans=poww(m,n+1);
           ans=(ans+mod-1)%mod;
           ans=(ans*poww(m-1,mod-2))%mod;
           printf("%lld
    ",ans);
       }
       return 0;
    }
  • 相关阅读:
    Hibernate总结(二)---hibernate中的各种映射
    调度子系统7_负载均衡(四)
    (网络层: 二 ) 网络层提供的服务(基于无连接的服务)
    我的2013——一名计算机教师的高开低走
    文艺小青年
    图解RabbitMQ
    解决Mac下idea运行速度慢
    较主流的消息队列的比较与选型
    Ubuntu下RabbitMQ安装
    linux守护进程与&的区别
  • 原文地址:https://www.cnblogs.com/stepping/p/7154752.html
Copyright © 2011-2022 走看看