U48565 金坷垃

肥料掺了金坷垃,一袋能顶两袋撒!

先给出题人点32个赞!

看到这种输入一个数输出一个数的题目就想打表,但是发现\(k\)辣么大!

所以找规律咯!

不难发现,只有1和2的倍数是满足条件的。

所以题目等价于求\(2^{k-1} \bmod 123456789\)

所以直接long long+ksm搞掉。

代码:

#include<cstdio>
#define ll long long
ll k;
ll pow_mod(ll x, ll y, ll z)
{
    ll ans = 1;
    while(y)
    {
        if(y & 1) ans = ans * x % z;
        x = x * x % z;
        y >>= 1;
    }
    return ans % z;
}
int main()
{
    scanf("%lld", &k);
    printf("%lld\n", pow_mod(2, k - 1, 123456789ll));
    return 0;
}
posted @ 2018-11-06 08:05  Garen-Wang  阅读(150)  评论(0编辑  收藏  举报