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; }