2016山东省acm省赛 G题尼姆博奕
2016-06-06 18:48
330 查看
#include<iostream> #include<map> #include<cstdio> #include<algorithm> using namespace std; long long num[55]; void init() { for(int i=1;i<=50;i++) num[i]=num[i-1]*3+1; } long long solve(long long n) { long long cnt=0; while(n) { if(n%2) cnt++; n/=2; } return cnt; } int main() { long long t,n; scanf("%lld",&t); init(); while(t--&&scanf("%lld",&n)!=EOF) { if(n&1) printf("0\n"); else { n=solve(n); printf("%lld\n",num[n-1]); } } return 0; }
相关文章推荐
- JAVA学习笔记--多线程(三)synchronized实现线程同步
- Unity 像子弹一样的方块+计数功能
- linux安装cx_Oracle模块
- 111.[Leetcode]Minimum Depth of Binary Tree
- Cloneable接口
- Hibernate中的一对多与多对一映射
- 【刷题之路】最长公共字符串
- 利用session完成用户登录与注销
- UI切图外包要求
- Docker安装
- 动态规划
- 番茄工作法
- GoogleMaps踏坑之旅(二)
- opencv第一课
- Web 服务器工作原理及相关术语
- SQL基础2
- awk: (FILENAME=- FNR=1) 致命错误: 试图访问字段 -2
- Hiredis 基本使用
- POJ-3278-Catch That Cow(BFS)
- 员工信息管理系统程序