NYOJ527 AC_mm玩dota

原题链接

还以为要用什么数学技巧否则会超时呢,结果没想到可以直接暴力求解。。

#include <cstdio>
#define mod 1314520
int f[270] = {1, 1};

int main(){
	int n, a, b;
	for(n = 2; n != 270; ++n)
		f[n] = (f[n - 1] + f[n - 2]) % mod;
	while(scanf("%d", &n) == 1){
		a = b = 0;
		while(n){
			if(n & 1) ++a;
			else ++b;
			n >>= 1;
		}
		printf("%d\n", f[a * b]);
	}
	return 0;
}


posted on 2014-02-28 15:22  长木Qiu  阅读(109)  评论(0编辑  收藏  举报