题意:

给原始序列1

给定变化规则是,对于原来的序列每一个0前边插入1,每个1前边插入0.

问原始序列经过n次变化之后有多少对相邻的0.

规律题:

从第二次开始

当第奇数次变化之后,数量变成原来数量的两倍-1;

当第偶数次变化之后,数量变成原来数量的两倍+1;

但是由于数据2^1000次方太大,需要用到大数,屌丝还没学到java对大数的处理,所以只写了一个高精度。

/*************************************************************************
> File Name: C.cpp
> Author: ttpond
> Created Time: 2015-8-22 15:32:30
************************************************************************/
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<math.h>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<set>
using namespace std;
char dp[][];
void cal(int pos)
{
int len=strlen(dp[pos-]);
int mm[];
memset(mm,,sizeof(mm));
int tmp;
for(int i=;i<len;i++)
{
mm[i]+=(dp[pos-][i]-)*;
mm[i+]+=mm[i]/;
mm[i]=mm[i]%;
}
for(int i=;i<len+;i++)
{
dp[pos][i]=mm[i]+;
}
if(dp[pos][len]=='')
dp[pos][len]=;
}
void add(int pos)
{
int len=strlen(dp[pos]);
int tmp;
int mm[];
memset(mm,,sizeof(mm));
mm[]=;
for(int i=;i<len;i++)
{
mm[i]+=dp[pos][i]-;
mm[i+]=mm[i]/;
mm[i]=mm[i]%;
}
for(int i=;i<len+;i++)
{
dp[pos][i]=mm[i]+;
}
if(dp[pos][len]=='')
dp[pos][len]=;
}
void sub(int pos)
{
int len=strlen(dp[pos]);
int mm[];
memset(mm,,sizeof(mm));
mm[]=-;
for(int i=;i<len;i++)
{
mm[i]+=dp[pos][i]-;
if(mm[i]<)
{
mm[i]+=;
mm[i+]--;
}
}
for(int i=;i<len;i++)
{
dp[pos][i]=mm[i]+;
}
if(dp[pos][len-]=='')
dp[pos][len-]=;
}
int main()
{
memset(dp,,sizeof(dp));
dp[][]='';
dp[][]='';
dp[][]='';
bool st=;
for(int i=;i<=;i++)
{
cal(i);
if(!st)
{
add(i);
}
else
{
sub(i);
}
st=!st;
}
int n;
while(scanf("%d",&n)!=EOF)
{
int len=strlen(dp[n]);
for(int i=len-;i>=;i--)
{
printf("%c",dp[n][i]);
}
printf("\n");
}
}

HDU 1041的更多相关文章

  1. HDU 1041 Computer Transformation (简单大数)

    Computer Transformation http://acm.hdu.edu.cn/showproblem.php?pid=1041 Problem Description A sequenc ...

  2. hdu 1041 (OO approach, private constructor to prevent instantiation, sprintf) 分类: hdoj 2015-06-17 15:57 25人阅读 评论(0) 收藏

    a problem where OO seems more natural to me, implementing a utility class not instantiable. how to p ...

  3. HDU 1041 Computer Transformation

    这道题目的意思是:一开始有一个数字 1 ,在接下来的时间中,计算机会按照如下规则进行扩展:                0 –> 1 0                1 –> 0 1 ...

  4. HDU 1041 Computer Transformation(找规律加大数乘)

    主要还是找规律,然后大数相乘 #include<stdio.h> #include<string.h> #include<math.h> #include<t ...

  5. HDU 1041(01展开 大数)

    题意是将 1 展开成 01 ,将 0 展开成 10 ,问这样展开 n 次后序列中有多少对 0. 手写发现:0,1,1,3,5,11 ... 即 a[ i ] = a[ i -1 ] + a[ i - ...

  6. hdu 1041(递推,大数)

    Computer Transformation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/ ...

  7. HDU 1041 Computer Transformation 数学DP题解

    本题假设编程是使用DP思想直接打表就能够了. 假设是找规律就须要数学思维了. 规律就是看这些连续的0是从哪里来的. 我找到的规律是:1经过两次裂变之后就会产生一个00: 00经过两次裂变之后也会产生新 ...

  8. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  9. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

随机推荐

  1. swift Equatable 函数签名的测试

    struct Degoo:Equatable { var lex:String var pex:String static func == (left:Degoo, right:Degoo) -> ...

  2. xcode uml 工具

    https://github.com/PaulTaykalo/objc-dependency-visualizer ./generate-objc-dependencies-to-json.rb -d ...

  3. treeTable的使用(ajax异步获取数据,动态渲染treeTable)

    一.展示效果(treetable基本样式https://www.cnblogs.com/shuihanxiao/p/10413454.html) 二.html文件(若一个页面又多个treetable, ...

  4. Linux Shell参数扩展(Parameter Expansion)

    Shell Command Language在线文档: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html ...

  5. [SNOI2019]数论

    题目 考虑对于每一个\(a_i\)计算有多少个\(0<x\leq T-1\)满足\(x\equiv a_i(mod\ P)\)且\(x\ mod\ Q \in B\) 显然\(x=a_i+k\t ...

  6. 1、C编程预备计算机知识

    一.数据类型 基本数据类型 1.整数 整形 -- int -- 4 短整型 -- short int -- 2 长整型 -- long int --8 2.浮点数(实数) 单精度浮点数 -- floa ...

  7. 4. COLLATION_CHARACTER_SET_APPLICABILITY

    4. COLLATION_CHARACTER_SET_APPLICABILITY 表COLLATION_CHARACTER_SET_APPLICABILITY表示哪种字符集适用于哪种排序规则. INF ...

  8. Saving James Bond - Hard Version

    07-图5 Saving James Bond - Hard Version(30 分) This time let us consider the situation in the movie &q ...

  9. BZOJ2726【SDOI2012】任务安排(斜率优化Dp+二分查找)

    由题目条件显然可以得到状态 f[i][j] 表示以 i 为结尾且 i 后作为断点,共做了 j 次分组的最小代价. 因此转移变得很显然:f[i][j]=min{f[k][j-1]+(s×j+sumT[i ...

  10. 利用scrapy获取抽屉新热榜的标题和内容以及新闻地址保存到本地

    1.安装scrapy pip3 install scrapy 2.打开terminal,cd 到想要创建程序的目录下 3.创建一个scrapy项目 在终端输入:scrapy startproject ...