zoukankan      html  css  js  c++  java
  • 浅谈分治算法在OI中的应用

    分治虽然是基本思想,但是OI中不会出裸分治让你一眼看出来,往往都是结合到找规律里面。

    先来个简单的:

                                奇妙变换 (magic.pas/c/cpp) 

    【问题描述】   为了奖励牛牛同学帮妈妈解决了大写中文数字的问题,牛牛妈妈特地抽出一个周末的时间带着牛牛来到梦幻儿童乐园游玩。   在游乐园,牛牛看到了一个非常有意思的游戏:游戏一开始,电脑屏幕上只有一个序列“A”,而后的每一次变化都把序列中的“A”变成“AB”,“B”变成“A”。游戏一直继续„„,最后屏幕上得到了序列“ABAABABAABAABABAABA„„”。当然更有意思的是,电脑会提出Q个询问,每次询问:在第m个字符和第n个字符之间有多少个“A”(包括第m、n个字符在内)。   你能帮牛牛解决这个问题吗?

    【输入格式】  第一行为一个整数Q,后面有Q行,每行两个数用空格隔开的整数m,n。

    【输出格式】  共Q行,每行一个回答。

    【样例输入】 1 2 8 

    【样例输出】 4 

    【数据范围】 1≤Q≤5000  1≤m≤n≤2^63  保证每次询问时,所询问的区间已经生成。

    分析:把数列生成的过程写一写

    1   A

    2   AB

    3   ABA

    5   ABAAB

    8   ABAABABA

    13  ABAABABAABAAB

    21  ABAABABAABAABABAABABA

    34  ABAABABAABAABABAABABAABAABABAABAAB

    ……

    很容易发现一个规律,那就是第k个序列是由第k-2个序列接在第k-1个序列后面形成的,故元素个数也就是前面两个之和,所以满足斐波那契数列……然后对于第k层的询问[m,n]可以找到当前所在序列的断点mid(即上一个序列的元素个数),分成两部分,[m,mid]传到k-1层,[mid+1,n]传到k-2层处理,至于每层断点可以预处理出斐波那契数列。

    ——————————————————————————————————————————————————————————————————————

    再来道神题……(ZJOI2009)

                                    硬币游戏

    描述
    Orez很喜欢玩游戏,他最近发明了一款硬币游戏。他在桌子的边缘上划分出2*n个位置并按顺时针把它们标号为1,2,……,2n,然后把n个硬币放在标号为奇数的位置上。接下来每次按如下操作:在任意两个硬币之间放上一个硬币,然后将原来的硬币拿走;所放硬币的正反面由它两边的两个硬币决定,若两个硬币均为正面朝上或反面朝上,则所放硬币为正面朝上,否则为反面朝上。
    那么操作T次之后桌子边缘上硬币的情况会是怎样的呢?
    格式
    输入格式

    输入第一行包含两个整数n和T。
    接下的一行包含n个整数,表示最开始桌面边缘的硬币摆放情况,第i个整数ai表示第i个硬币摆放在2*i-1个位置上,ai=1表示正面朝上,ai=2表示反面朝上。
    输出格式

    输出仅包含一行,为2n个整数,其中第i个整数bi桌面边缘的第i个位置上硬币的情况,bi=1表示正面朝上,bi=2表示反面朝上,bi=0表示没有硬币。
    样例1
    样例输入1[复制]

    10 5
    2 2 2 1 1 1 1 1 1 2
    样例输出1[复制]

    0 1 0 1 0 1 0 1 0 2 0 1 0 2 0 1 0 1 0 1
    限制
    每点1s。
    提示
    30%的数据 n≤1000 T≤1000
    100%的数据 n≤100000 T≤2^60
    来源
    NOI2009浙江省省选第二试

    分析:找规律神题,http://hi.baidu.com/oimaster/item/2313fb22fb9c823795f62b41 JZP博客……

  • 相关阅读:
    hadoop2.x整合手册【3】---编译sqoop的jar以及client的api调用
    hadoop2.x整合手册【2】---sqoop1.9.x安装与部署
    hadoop2.x整合手册【1】--hadoop2.x安装与配置
    "Mac OS X"录屏幕视频并转成gif
    osx launchpad图标的删除
    App Store中的开源游戏汇总
    App Store上的开源应用汇总
    转载:使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
    UIViewController中各方法调用顺序及功能详解
    ios项目icon和default图片命名规则
  • 原文地址:https://www.cnblogs.com/wmrv587/p/3535191.html
Copyright © 2011-2022 走看看