[ZJOI2012]数列
超级水的题还wa了一次
首先很容易发现其实就只有两个值并存
然后 要注意把数组初始化啊。。。可能后面有多余的元素(对拍的时候由于从小到大就没跑出错)
#include <bits/stdc++.h>
using namespace std;
int a[],b[],a1[],a2[],x1[],x2[];
bool t;
char s[];
void cf(int *a)
{
int x=;
for (int i=;i>=;i--)
{
b[i]=(x*+a[i])/;
x=(x*+a[i])%;
}
memcpy(a,b,sizeof(b));
}
void calc1(int *a,int *b)
{
int x=;
for (int i=;i<=;i++)
{
b[i]=(a[i]+x)%;
x=(a[i]+x)/;
}
}
void calc2(int *a,int *b)
{
int x=;
for (int i=;i<=;i++)
{
if (x==)
{
if (a[i]==) b[i]==;
else b[i]=a[i]-,x=;
} else b[i]=a[i];
}
}
int pd(int *a)
{
int u=;
for (int i=;i>=;i--)
if (a[i]>) u=;
if (!u)
{
if (a[]==) return();
else if (a[]==) return();
}
return();
}
void cc(int *a1,int *a2)
{
int x=;
for (int i=;i<=;i++)
{
b[i]=(a1[i]+a2[i]+x)%;
x=(a1[i]+a2[i]+x)/;
}
memcpy(a1,b,sizeof(b));
}
void dfs()
{
while (true)
{
int tmp=pd(a1);
if (tmp==)
{
memcpy(x1,x2,sizeof(x2));
return ;
} else if (tmp==)
{
cc(x1,x2);
return ;
}
if (!pd(x2))
{
if (a1[]%==) cf(a1); else
{
cf(a1);
calc1(a1,a2);
memcpy(x2,x1,sizeof(x1));
}
} else
{
if (a1[]%==)
{
cf(a1);
calc1(a1,a2);
cc(x1,x2);
} else
{
cf(a2);
calc2(a2,a1);
cc(x2,x1);
}
}
}
}
int main()
{
int T;
cin>>T;
for (int i=;i<=T;i++)
{
cin>>s;
memset(a,,sizeof(a));
for (int i=;i<strlen(s);i++)
a[i+]=s[strlen(s)-i-]-'';
memset(x1,,sizeof(x1));
memset(x2,,sizeof(x2));
x1[]=;
memcpy(a1,a,sizeof(a));
dfs();
int j;
for (j=;j;j--) if (x1[j]) break;
for (int k=j;k;k--) cout<<x1[k];
if (j==) cout<<;
cout<<endl;
}
return ;
}
[ZJOI2012]数列的更多相关文章
- [BZOJ2656][codevs1207][Zjoi2012]数列(sequence)
[BZOJ2656][codevs1207][Zjoi2012]数列(sequence) 试题描述 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: 小白作为一个数学爱好者 ...
- 【BZOJ 2656】2656: [Zjoi2012]数列(sequence) (高精度)
2656: [Zjoi2012]数列(sequence) Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 1499 Solved: 786 Descri ...
- bzoj 2656 [Zjoi2012]数列(sequence) 递推+高精度
2656: [Zjoi2012]数列(sequence) Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Descri ...
- 洛谷 P2609 [ZJOI2012]数列 解题报告
P2609 [ZJOI2012]数列 题目描述 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: A(0)=0 A(1)=1 A(2i)=A(i) (对于任意 i>0 ...
- BZOJ2656 [Zjoi2012]数列
Description 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: $$\begin{aligned}A_0 &= 0\\A_1 &= 1\\A_{2 ...
- 【bzoj2656】[Zjoi2012]数列(sequence) 高精度
题目描述 给出数列 $A$ 的递推公式如下图所示,$T$ 次给定 $n$ ,求 $A_n$ . 输入 输入文件第一行有且只有一个正整数T,表示测试数据的组数.第2-T+1行,每行一个非负整数N. 输出 ...
- [BZOJ 2656][ZJOI2012]数列(递归+高精度)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2656 分析: 很容易想到递归分治,但遇到奇数时候f[i]=f[i/2]+f[i/2+1 ...
- bzoj 2656 [Zjoi2012]数列(sequence)(高精度)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2656 [题意] 计算大数递推式 [思路] 高精度 [代码] #include<c ...
- bzoj2656 [Zjoi2012]数列(sequence)
题目链接 好久没写高精度了,调了很久QAQ 如果直接递归计算答案的话肯定会T 发现一个数不管是分成一奇一偶还是直接>>1,都会重复计算很多东西 我们只需要在递归的时候实时维护一个xx(an ...
随机推荐
- 转--python之正则入门
原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法 ...
- 20155331 2016-2017-2 《Java程序设计》第七周学习总结
20155331 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 一.认识Lambda语法 1.Lambda语法概览 Arrays的sort()方法可以用来排 ...
- tidb 架构 ~Tidb学习系列(4)
一 简介:今天我们继续学习tidb 二 集群管理 0 集群配置 验证 4台一组 3个kv 一个pd+server 上线 6台一组 1 动态添加kv服务 nohu ...
- DSO windowed optimization 代码 (2)
3 非 Schur Complement 部分信息计算 参考<DSO windowed optimization 公式>,非Schur Complement 部分指 \(H_{XX}\) ...
- Android测试技能树
Android 基础知识 Android 的体系结构 apk 的组成结构 adb 命令的使用 Android 的四大组件 Activity 的生命周期 … 测试/开发环境的准备 JDK 安装 SDK ...
- Django开发笔记四
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...
- Python算法:推导、递归和规约
Python算法:推导.递归和规约 注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心 ...
- classfication中使用图像金字塔和sliding windows提高准确率
之前对imagenet的预训模型进行finetune,找出了很多样本选择时的注意事项,当时在测试如下这张照片时,效果不好,我认为是物体过小造成的,因此尝试使用图像金字塔的方法: 当时结果如下: 一开始 ...
- Linux下rsyslog日志收集服务环境部署记录【转】
rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...
- tomcat jetty
背景 其实这个比较毫无意义.只是当时突然知道了jetty,所以记下来,对于开发人员来说选择哪个一般意义不大. 转载 从架构上来看 Tomcat 在处理少数非常繁忙的连接上更有优势,也就是说连接的生命周 ...