Funny Function

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1213    Accepted Submission(s): 594

Problem Description
Function Fx,ysatisfies:

For given integers N and M,calculate Fm,1 modulo 1e9+7.
 
Input
There is one integer T in the first line.
The next T lines,each line includes two integers N and M .
1<=T<=10000,1<=N,M<2^63.
 
Output
For each given N and M,print the answer in a single line.
 
Sample Input
2
2 2
3 3
Sample Output
2
33
 
题目大意:题目给出递推式,对给定的n,m,求F(m,1)
思路:用观察、归纳的方法可以推出:n为奇数时,F(m,1)=(2*(2^n-1)^m+1)/3,
                 n为偶数时,F(m,1)=2*(2^n-1)^m/3.
     用个快速幂加逆元就可以搞定了。难点在于推出公式。
 
AC代码:
 #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const long long MOD=1e9+;
long long quick_pow(long long a, long long p){
long long ans=;
while(p){
if(p&) ans=ans*a%MOD;
a=a*a%MOD;
p>>=;
}
return ans;
}
int main()
{
long long n, m;
int T;
cin>>T;
while(T--)
{
//cout<<'*'<<endl;
cin>>n>>m; long long res=(quick_pow(, n)-)%MOD;
res=*quick_pow(res, m-)%MOD;
if(n&)
res=(res+)%MOD;
res=res*quick_pow(, MOD-)%MOD;
cout<<res<<endl;
}
}

  个人感觉这种方法不是特别好,这里推荐nicetomeetu的题解, 是用矩阵快速幂做的,公式推的比较详细,可以借鉴一下思路。

HDU 6050 Funny Function —— 2017 Multi-University Training 2的更多相关文章

  1. HDU 6050 - Funny Function | 2017 Multi-University Training Contest 2

    /* HDU 6050 - Funny Function [ 公式推导,矩阵快速幂 ] 题意: F(1,1) = F(1, 2) = 1 F(1,i) = F(1, i-1) + 2 * F(1, i ...

  2. hdu 6050: Funny Function (2017 多校第二场 1006) 【找规律】

    题目链接 暴力打个表找下规律就好了,比赛时看出规律来了倒是,然而看这道题看得太晚了,而且高中的那些数列相关的技巧生疏了好多,然后推公式就比较慢..其实还是自身菜啊.. 公式是 #include< ...

  3. HDU 6170 - Two strings | 2017 ZJUT Multi-University Training 9

    /* HDU 6170 - Two strings [ DP ] | 2017 ZJUT Multi-University Training 9 题意: 定义*可以匹配任意长度,.可以匹配任意字符,问 ...

  4. 2017 Multi-University Training Contest - Team 2 &&hdu 6050 Funny Function

    Funny Function Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. 2017ACM暑期多校联合训练 - Team 2 1006 HDU 6050 Funny Function (找规律 矩阵快速幂)

    题目链接 Problem Description Function Fx,ysatisfies: For given integers N and M,calculate Fm,1 modulo 1e ...

  6. hdu 6050 Funny Function 矩阵快速幂

    就算告诉我是矩阵快速幂我也推不出递推式呀!!! 官方题解: 对于任意i>=1,当j>=3时,有通过归纳法可以得到 进而推导出 后来自己重新推导了一遍 #include <iostre ...

  7. HDU 6168 - Numbers | 2017 ZJUT Multi-University Training 9

    /* HDU 6168 - Numbers [ 思维 ] | 2017 ZJUT Multi-University Training 9 题意: .... 分析: 全放入multiset 从小到大,慢 ...

  8. HDU 6162 - Ch’s gift | 2017 ZJUT Multi-University Training 9

    /* HDU 6162 - Ch’s gift [ LCA,线段树 ] | 2017 ZJUT Multi-University Training 9 题意: N节点的树,Q组询问 每次询问s,t两节 ...

  9. HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛

    普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...

随机推荐

  1. jmeter之集合点的使用

    通过jmeter并不能1秒立即达到某一并发,这时候,可以通过集合点来实现,达到某一并发时,然后再一起执行某一动作,仅作用于第一次动作的时候 目录 1.集合点元件 2.简单的概念介绍 1.集合点元件 集 ...

  2. DJango安装-windows

    1.进入虚拟环境后启动 activate 2.查看当前虚拟环境是否存在Django环境 pip list 3.不存在则 安装Django环境 pip install django 4.查看Django ...

  3. Vagrant 手册之网络 - 端口转发

    原文地址 Vagrantfile 配置文件中端口转发的网络标识符:forwarded_port,例如: config.vm.network "forwarded_port", gu ...

  4. POJ 3281 网络流 拆点保证本身只匹配一对食物和饮料

    如何建图? 最开始的问题就是,怎么表示一只牛有了食物和饮料呢? 后来发现可以先将食物与牛匹配,牛再去和饮料匹配,实际上这就构成了三个层次. 起点到食物层边的容量是1,食物层到奶牛层容量是1,奶牛层到饮 ...

  5. 使用HEXO建站

    使用Hexo模板 按以下指导进行本地预览和上传到你的github. 环境安装 安装node.js node.js官方下载地址https://nodejs.org/en/ 设置npm淘宝镜像站(npm默 ...

  6. .apk的MIME类型

    1.扩展名: .apk      MIME类型: application/vnd.android 2.Internet 服务管理器添加.apk:打开IIS --->找到MIME类型,双击之 -- ...

  7. EasyUI的columns中列标题居中

    $("#supDataList").datagrid({   url: "../Ajax/SupplierAjax.ashx",   queryParams:  ...

  8. centos nginx 设置开启启动

    1 vi /etc/init.d/nginx #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkco ...

  9. canvas添加事件

    https://blog.csdn.net/xundh/article/details/78722744

  10. Java程序流程控制

    程序流程控制有 选择,循环,以及跳转结构 选择结构中无非就是 If 和 switch语句我两种都做了一些小案例 1. 利用Scanner库来获得控制台用户输入的数字与代码中定义的变量比较 packag ...