[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 ...
随机推荐
- java中CRUD(增删查改)底层代码的实现
java中CRUD(增删查改)底层代码的实现: package com.station.dao; import com.station.model.Product; import java.sql.* ...
- DNS缓存欺骗攻击
1.受影响的无线网络设备 一些D-link.TP-Link.Belkin.Linksys及IPTime等品牌无线路由器存在安全隐患. 2.漏洞描述 攻击者向DNS服务器注入非法网络域名地址,如果服务器 ...
- .net 加密与解密
public class Encrypts { /// <summary> /// 构造方法 /// </summary> public Encrypts() { } /// ...
- JavaScript之12306自动刷新车票[待完善]
function refresh(){ var search_btn = document.getElementById("query_ticket"); var result_t ...
- 解决Ubuntu的root账号无法登录SSH问题-Permission denied, please try again.
http://www.cnblogs.com/yixius/articles/6971054.html
- mysql 索引无法使用问题
今天碰到一个问题,表中有一个索引不使用,怎么强制也没用 ,force index都没用, 后来才发现是类型不对, 比如索引字段是int,如果参数使用varchar,那么是无法使用索引的,参数类型最好统 ...
- SpringBoot整合Jest操作ES
(1).添加依赖 <dependency> <groupId>io.searchbox</groupId> <artifactId>jest</a ...
- Python|绝不乱入的靠谱书单
- 董事局主席董事长总裁首席执行官CEO总裁董事监事区别
董事长是公司的最大股东:董事长是董事会的主席,一般是企业的所有者,掌握企业的股权并且决定企业的发展策略. 董事局主席通常是在大财团中才会出现,董事局主席管数个董事长,一个大财团涉及很多方面的业务,因此 ...
- /etc/fstab文件详解【转】
******************************************************************************* 有很多人经常修改/etc/fstab文件 ...