[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 ...
随机推荐
- 转--利用hexo搭建个人静态博客
引用地址 可谓图文并茂,可以配合 七牛云存储(做图片等文件服务器),搭建好看的个人博客 hexo 官方指导文档 主题 官网教程 问题集锦 简书 http://blog.csdn.net/wx_9624 ...
- IntelliJ IDEA AndroidStudio SVN无法使用
1.Cann't Run Program "SVN" 把勾都去掉,结果没有任何反应.2.重新安装TotoriseSVN,设置Svn.exe路径,主要不要勾选Enable Inter ...
- u-boot移植(十三)---代码修改---支持文件系统及补丁制作
一.烧写文件系统 1.1 jffs2烧写 1.下载文件系统:tftp 30000000 fs_mini_mdev.jffs2 2.擦除文件的块:nand erase.part rootfs 3.烧入文 ...
- 拿webshell权限方法(一)
概念 Webshell就是以asp,php,jsp或cgi等网页文件形式存在的一种命令执行环境,也可以将其称为一种网页后门. Access数据库拿webshell 首先看是否能找到网站漏洞进行网站的后 ...
- Linux 开机启动图形界面,shell界面
查看当前启动模式 # systemctl get-default 更改模式命令: systemctl set-default graphical.target由命令行模式更改为图形界面模式 syste ...
- 树形控件QTreeWidget
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QTreeWidge ...
- $Miller Rabin$总结
\(Miller Rabin\)总结: 这是一个很高效的判断质数的方法,可以在用\(O(logn)\) 的复杂度快速判断一个数是否是质数.它运用了费马小定理和二次探测定理这两个筛质数效率极高的方法. ...
- 字符加密 Valentino 函数 (伪分治)
题面 \(solution:\) 这一题重点不在字符串加密,而是我们最后的求值:\(K^{s}\mod M\)(\(s\leq36^{100000}\)) 而我们发现它的指数十分巨大,但众所周知的指数 ...
- 阿里云服务器 ECS Linux 禁止IP 通过 SSH 登录
这几天买的服务器老是受到黑客攻击被破解登录密码,今天修改了登录规则发现只有固定ip可以访问,其他ip即使有密码也无法登录我的服务器,但是能通过ip访问我的网站,哈哈. 限制 IP SSH 登录解决步骤 ...
- python之functools partial
from functools import partial def aa(a,b,c): print ('a :',a) print ('b :',b) print ('c :',c) bb=part ...