[luogu P5035] 金坷垃

我扔:https://www.luogu.org/problemnew/show/P5035

考虑倒推

假设  a|b, b-a=1

那么可得 a = 1, b = 2

问题又可以转换为a'|b', b'-a'=b=2

一路推过去就知道答案为2^{k-1}

代码:

#include<bits/stdc++.h>
#define mod 123456789
using namespace std;
long long t = 2, ans = 1, n;
int main(){
	scanf("%lld", &n); n --;
	for(;n; n >>= 1, t = t * t % mod) if(n&1) ans = ans * t % mod;
	printf("%lld", ans);
	return 0;
}

没啥好说的,记得开long long

posted @ 2019-01-02 08:16  lahlah  阅读(47)  评论(0编辑  收藏  举报