题目链接

好久没写高精度了,调了很久QAQ

如果直接递归计算答案的话肯定会T

发现一个数不管是分成一奇一偶还是直接>>1,都会重复计算很多东西

我们只需要在递归的时候实时维护一个xx(ans[x])和xxx(ans[x-1])

一层一层的选择更新xx或xxx就好

(请无视递归函数的名称和里面乱搞的数字)

 #include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<cmath>
#include<ctime>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define rre(i,r,l) for(int i=(r);i>=(l);i--)
#define re(i,l,r) for(int i=(l);i<=(r);i++)
#define Clear(a,b) memset(a,b,sizeof(a))
#define inout(x) printf("%d",(x))
#define douin(x) scanf("%lf",&x)
#define strin(x) scanf("%s",(x))
#define LLin(x) scanf("%lld",&x)
#define op operator
#define CSC main
typedef unsigned long long ULL;
typedef const int cint;
typedef long long LL;
using namespace std;
void inin(int &ret)
{
ret=;int f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=;ch=getchar();}
while(ch>=''&&ch<='')ret*=,ret+=ch-'',ch=getchar();
ret=f?-ret:ret;
}
struct hint
{
int a[],len;
void clear(){Clear(a,);len=;}
void maintain()
{
for(len=;len>=;len--)
if(a[len])break;
}
void in()
{
char ch;len=;
while(ch<''||ch>'')ch=getchar();
while(ch>=''&&ch<='')a[++len]=ch-'',ch=getchar();
re(i,,len>>)swap(a[i],a[len-i+]);
}
hint op / (int x)
{
hint rhs=*this;
int ex=;
rre(i,rhs.len,)
{
ex*=;
rhs.a[i]+=ex;
ex=rhs.a[i]%;
rhs.a[i]>>=;
if(!rhs.a[i]&&i==len)rhs.len--;
}
rhs.a[rhs.len+]=;
return rhs;
}
hint op + (int x)
{
hint rhs=*this;
int ex=;
re(i,,rhs.len)
{
rhs.a[i]+=ex;
ex=rhs.a[i]/;
if(rhs.a[i]==&&i==len)rhs.len++;
rhs.a[i]%=;
}
rhs.a[rhs.len+]=;
return rhs;
}
hint op + (hint &xx)
{
hint rhs=*this;
rhs.len=max(rhs.len,xx.len);
int ex=;
re(i,,rhs.len)
{
rhs.a[i]+=xx.a[i]+ex;
ex=rhs.a[i]/;
if(rhs.a[i]>)rhs.len++;
rhs.a[i]%=;
}
rhs.a[rhs.len+]=;
return rhs;
}
bool op == (int x)
{
return len==&&a[]==;
}
bool op & (int x)
{
return a[]&;
}
void out()
{
rre(i,len,)printf("%d",a[i]);
}
};
int n;hint x,xx,xxx;
void wocao(hint x)
{
if(x==3.145926535897932384626433823)
{
xx=x;xxx.clear();
return ;
}
wocao((x+/3.14)/);
if(x&)xx=xx+xxx,xx.maintain();
else xxx=xx+xxx,xxx.maintain();
}
int main()
{
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
inin(n);
while(n--)
{
x.clear();
x.in();
wocao(x);
xx.out();cout<<"\n";
}
return ;
}

bzoj2656 [Zjoi2012]数列(sequence)的更多相关文章

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

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

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

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

  3. 【BZOJ 2656】2656: [Zjoi2012]数列(sequence) (高精度)

    2656: [Zjoi2012]数列(sequence) Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 1499  Solved: 786 Descri ...

  4. bzoj 2656 [Zjoi2012]数列(sequence) 递推+高精度

    2656: [Zjoi2012]数列(sequence) Time Limit: 2 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Descri ...

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

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

  6. BZOJ2656 [Zjoi2012]数列

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

  7. bzoj 2656 [Zjoi2012]数列(sequence)(高精度)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2656 [题意] 计算大数递推式 [思路] 高精度 [代码] #include<c ...

  8. 2656: [Zjoi2012]数列(sequence)(递归+高精度)

    好久没写题了T T NOIP 期中考双血崩 显然f(x)=f(x>>1)+f((x>>1)+1),考虑每次往x>>1递归,求出f(x),复杂度O(logN) 我们设 ...

  9. 洛谷 P2609 [ZJOI2012]数列 解题报告

    P2609 [ZJOI2012]数列 题目描述 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: A(0)=0 A(1)=1 A(2i)=A(i) (对于任意 i>0 ...

随机推荐

  1. 在linux下一般用scp这个命令来通过ssh传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...

  2. nginx配置url重写

    url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态.301重定向.浏览器定向等 rewrite 语法 在配置文件的server块中写,如: s ...

  3. 【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)

    在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...

  4. Spark SQL内置函数

    Spark SQL内置函数官网API:http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.fun ...

  5. [py]flask操作cookie&django的seesion和cookie机制

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  6. Py中的矩阵乘法【转载】

    转自:https://blog.csdn.net/cqk0100/article/details/76221749 1.总结 对于array对象,*和np.multiply函数代表的是数量积,如果希望 ...

  7. 【Java】-NO.17.EBook.4.Java.1.014-【疯狂Java讲义第3版 李刚】- Annotation

    1.0.0 Summary Tittle:[Java]-NO.17.EBook.4.Java.1.014-[疯狂Java讲义第3版 李刚]-  Annotation Style:EBook Serie ...

  8. 23-Python3 File

    ''' file(文件)方法 ''' #open()对象 pass #file对象 ##file.close():关闭文件,关闭后不能再进行读写操作 fo1 = open('/Users/ligaij ...

  9. [LeetCode] 367. Valid Perfect Square_Easy tag:Math

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...

  10. node跨域cors模块,nodejs+express跨域

    使用express写的接口,只能在内部使用,如果想要外部的服务访问,就涉及到了跨域.但是又不想用jsonp,其实有一个node模块,可以轻松实现跨域 npm install cors --save 然 ...