直接利用 $log$ 函数快速降低乘方的大小。
对于一个 $a^b$ 的乘方来说,可以写成 $blog(a)$ 与 $log(10^9)$ 来比较大小,最终利用快速幂快速求乘方!
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long LL;
const double eps = 1e-3;
LL qmi(int a, int b)
{
LL res = 1;
while(b)
{
if(b & 1) res = (LL)res * a;
a = (LL) a * a;
b >>= 1;
}
return res;
}
int main()
{
int a, b;
cin >> a >> b;
cout << ((b * log(a) - log(1e9) < eps) ? qmi(a, b) : -1) << endl;
}
AcWing【集日历瓜分10000AC币活动】赠送12月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/12/96cc0c7e/
AcWing【集日历瓜分10000AC币活动】赠送12月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/12/96cc0c7e/
AcWing【集日历瓜分10000AC币活动】赠送7月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/7/45451c35/
AcWing【集日历瓜分10000AC币活动】赠送4月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/4/0fa87ffc/
AcWing【集日历瓜分10000AC币活动】赠送4月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/4/0fa87ffc/
AcWing【集日历瓜分10000AC币活动】赠送4月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/4/0fa87ffc/
AcWing【集日历瓜分10000AC币活动】赠送3月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/3/3d0426d2/
AcWing【集日历瓜分10000AC币活动】赠送2月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/2/d847ed0f/
AcWing【集日历瓜分10000AC币活动】赠送1月日历!https://www.acwing.com/file_system/gui/taskbar/widgets/clock/calendar/send/150003/1/ff5bf738/