bzoj 4475: [Jsoi2015]子集选取

来源:互联网 发布:python入门经典pdf下载 编辑:程序博客网 时间:2024/05/22 09:04

Description

Input

输入包含一行两个整数N和K,1<=N,K<=10^9

Output

一行一个整数,表示不同方案数目模1,000,000,007的值。

Sample Input

2 2

Sample Output

16

其实这题原题还有一组样例6 40,输出是401898087
然后手推找规律可以发现答案就是2^(n+k)
带入大数据验证发现可行
【这题似乎考场上基本大家都A掉了】
证明的话似乎是从一行推到多行还是怎么样的。。并不会证
#include<cstdio>using namespace std;long long mod=1000000007;long long power(long long x,long long y){long long p=1,xx=2;while(y!=0){if(y%(long long)2==1)p=p*xx%mod;xx=xx*xx%mod;y=y/(long long)2;}return p;}int main(){long long n,k;scanf("%lld%lld",&n,&k);printf("%lld\n",power(2,n*k));return 0;}


0 0