题目链接:传送门

题目大意:已知 a0=0;a1=1; n为偶数 an=a(n/2);n为基数 an=a(n/2)+a(n/2+1);

题目思路:因为n过大,所以要用java高精度,还有最多20组数据,所以记忆化搜索一下

import java.io.*;
import java.math.*;
import java.util.*; public class Main {
public static HashMap<BigInteger, BigInteger> M=new HashMap<BigInteger,BigInteger>();
public static Scanner in=new Scanner(new BufferedInputStream(System.in));
public static void main(String args[]){
M.put(BigInteger.valueOf(0),BigInteger.valueOf(0));
M.put(BigInteger.valueOf(1),BigInteger.valueOf(1));
solve();
in.close();
}
public static void solve(){
int group=in.nextInt();
while(group--!=0){
BigInteger num1=in.nextBigInteger();
BigInteger ans=dfs(num1);
System.out.println(ans);
}
}
public static BigInteger dfs(BigInteger a){
if(M.containsKey(a)) return M.get(a);
BigInteger ta=a;
if(a.mod(BigInteger.valueOf(2)).compareTo(BigInteger.valueOf(1))==0){
a=a.divide(BigInteger.valueOf(2));
BigInteger temp1=dfs(a);
a=a.add(BigInteger.valueOf(1));
BigInteger temp2=dfs(a);
temp1=temp1.add(temp2);
M.put(ta,temp1);
return temp1;
}
else{
a=a.divide(BigInteger.valueOf(2));
BigInteger tt=dfs(a);
M.put(ta,tt);
return tt;
}
}
}

bzoj2656的更多相关文章

  1. [BZOJ2656][codevs1207][Zjoi2012]数列(sequence)

    [BZOJ2656][codevs1207][Zjoi2012]数列(sequence) 试题描述 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: 小白作为一个数学爱好者 ...

  2. bzoj2656 [Zjoi2012]数列(sequence)

    题目链接 好久没写高精度了,调了很久QAQ 如果直接递归计算答案的话肯定会T 发现一个数不管是分成一奇一偶还是直接>>1,都会重复计算很多东西 我们只需要在递归的时候实时维护一个xx(an ...

  3. bzoj2656 数列

    Description 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: A[0]=0 A[1]=1 A[2n]=A[n] A[2n+1]=A[n]+A[n+1] 小白作为 ...

  4. BZOJ2656 [Zjoi2012]数列

    Description 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: $$\begin{aligned}A_0 &= 0\\A_1 &= 1\\A_{2 ...

  5. 【bzoj2656】[Zjoi2012]数列(sequence) 高精度

    题目描述 给出数列 $A$ 的递推公式如下图所示,$T$ 次给定 $n$ ,求 $A_n$ . 输入 输入文件第一行有且只有一个正整数T,表示测试数据的组数.第2-T+1行,每行一个非负整数N. 输出 ...

  6. BZOJ2656 [Zjoi2012]数列(sequence)[模拟]

    这个递推式子可以发现$i$是偶数下标可以缩一半,是奇数下标就可以拆成两个下标,$\lfloor \frac{i}{2} \rfloor$以及$\lfloor \frac{i}{2}+1 \rfloor ...

  7. Noip2016

    <这篇是以前的,不开新的了,借版面来换了个标题> 高二了 开学一周,每天被文化课作业碾压... 但是仍然阻挡不了想刷题的心情... 对付noip2016的几块:(有点少,以后补) 高精度( ...

  8. [转载]hzwer的bzoj题单

    counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...

  9. BZOJ刷题列表【转载于hzwer】

    沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...

随机推荐

  1. 使用struct与使用class初始化对象效率对比

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  2. python3 JSON对象的学习

    import jsonname = { 'alex':[22,'M'], 'tony':[21,'F'],} name_after = json.dumps(name)name_after = nam ...

  3. Brackets - 前端编辑器推荐

    Brackets是一款基于web(html+css+js)开发的web前端编辑器.它有许多普通编辑器难以实现的功能,是web前端开发者的神器. 戳我去下载 其功能如下: 1.快速编辑 将光标定在颜色上 ...

  4. (转)No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VA 解决办法

    c3dEngine在iphone6模拟器下运行报错No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, V ...

  5. bashrc,bash_profile和/etc/profile

    bashrc,bash_profile和/etc/profile 最近老出现在shell里面能跑的程序用鼠标双击app去不能跑.究其原因是因为环境变量的问题. 在类unix系统中一般有三个bash配置 ...

  6. AlarmManager研究

    1.概述 在Android系统中,闹钟和唤醒功能都是由Alarm Manager Service控制并管理的.我们所熟悉的RTC闹钟以及定时器都和它有莫大的关系.为了便于称呼,我常常也把这个servi ...

  7. jQuery中的text(),html(),val()有什么区别

    text():获取或者改变指定元素的文本html():获取或改变指定元素的html元素以及文本val():获取或者改变指定元素的value值(一般是表单元素) 以上3个都是jquery类库中的语法 第 ...

  8. WebView中input file的解决方法

    public class MyWb extends Activity { /** Called when the activity is first created. */ WebView web; ...

  9. MVC & Entity Framework(1)- 开发环境

    一直都有接触asp.net mvc,希望自己借此次机会把Blog搭起来的同时能够更深入地学习相关知识. ①新建 打开VS2012,新建ASP.Net MVC 4项目,接着选择“空”模板(因为不想用自带 ...

  10. Source Insight 项目简单使用说明

    SI(Source Insight) 是我一直写代码的好伙伴, 相信这强大的软件也是广大程序猿编写软件的利器. 正所谓" 工欲善其事, 必先利其器", 我们要学会利用这款软件. 先 ...