[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 ...
随机推荐
- .Net进阶系列(11)-异步多线程(委托BeginInvoke)(被替换)
一. BeginInvoke最后两个参数的含义 倒数第二个参数:指该线程执行完毕后的回调函数:倒数第一个参数:可以向回调函数中传递参数. 下面以一段代码说明: /// <summary> ...
- 006、容器 What、Why、How(2018-12-21 周五)
参考https://www.cnblogs.com/CloudMan6/p/6751516.html What - 什么是容器? 容器是一种轻量级.可移植.自包含的软件打包技术,是应用 ...
- C# 生成一个带数字的饼图
using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D ...
- luogu 1064 金明的预算方案
01背包 变形,有主附件的背包内则更改决策 original: 1) 不选 2)选,f[j-w[i]]+v[i] now : 1)不选 2)选主 3)主 附1 4)主 附2 ...
- python - socketserver 模块应用
server端: import socketserver import subprocess import json import struct class MyTCPHandler(socketse ...
- bootstrap-table插件数据加载方式
data-url 直接使用data-url在table标签中定义 使用load方法加载数据 $(“#finishingTask”).bootstrapTable(‘load’,data); //dat ...
- Mybatis进阶学习笔记——输入映射
1.输入映射 输入映射支持的类型: 1) 基本的类型,int,String,double 等(*)2) JavaBean 类型(*)3) 包装JavaBean 类型(对象里面包含另一个对象) 1.1基 ...
- Java注解之Retention、Documented、Target、Inherited介绍
先看代码,后面一个个来解析: @Retention(RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD, ElementType. ...
- Kaggle 泰坦尼克
入门kaggle,开始机器学习应用之旅. 参看一些入门的博客,感觉pandas,sklearn需要熟练掌握,同时也学到了一些很有用的tricks,包括数据分析和机器学习的知识点.下面记录一些有趣的数据 ...
- mysql之 innobackupex备份+binlog日志的完全恢复【转】
前言: MySQL的完全恢复,我们可以借助于完整的 备份+binlog 来将数据库恢复到故障点. 备份可以是热备与逻辑备份(mysqldump),只要备份与binlog是完整的,都可以实现完全恢复. ...