hdu 4704
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4704
一条公式搞定,知道了很快AC,不知道就苦逼了,我是不知道的,呵呵,慢慢积累。
所以只需将输入的字符串转化为10^9+6内的数即可,然后快速幂求
另一条公式:
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define mod 1000000007
#define mod1 1000000006
__int64 transfer(string s)
{
int len=s.length();
__int64 ret=0;
for(int i=0; i<len; i++)
{
ret=(ret*10+(s[i]-'0'))%mod1;
}
return ret%mod1;
}
__int64 quickmi(__int64 a,__int64 k)
{
int r=1;
while(k>0)
{
if(k%2)
r=(r*a)%mod;
a=(a*a)%mod;
k/=2;
}
return r%mod;
}
int main()
{
string s1;
while(cin>>s1)
{
__int64 b=transfer(s1);
__int64 rr=quickmi(2,b-1);
cout<<rr<<endl;
}
return 0;
}