zoukankan      html  css  js  c++  java
  • 第60届IMO 第5题


    题目
     
    巴斯银行发行的硬币在一面上铸有H,在另一面上铸有T,哈利有枚这样的硬币并将这些硬币从左至
    右排成一行,他反复地进行如下操作:如果恰有k(>0)枚硬币H面朝上,则他将从左至右的第k枚硬币
    翻转;如果所有硬币都是T面朝上则停止操作,例如:当n=3,并且初始状态是THT,则操作过程为
    THT→HHT→HTT→TTT,总共进行了三次操作后停止

    证明:对每个初始状态,哈利总在有限次操作后停止

    解答
     
    将问题转化为:H的个数总会在有限次操作后-1
    设最右端的H坐标为x,易知x>=k
    当x=k时,前x个全为H,后面全为T,易知经过x次操作后,变为全T
    当x>k时,分为两种情况
    1)当第k个为H时,H翻转变为T,H个数-1
    2)当第k个为T时,T翻转变为H,H个数+1,向右走,因为第k到第x(包含x)必然有H,设第k个右侧第一个H坐标为k+a,则k到k+a全是T,因为只要是T就会翻转变为H,又会往右走,所以会一直向右走,直到遇见右侧第一个H(坐标k+a),之后H变为T,H的个数-1,向左走,又因为此时从k到k+a-1,全已经翻转变为了H,所以当K+a的H变为T之后向左走又会导致左边的H变为T,H的个数又减少,又会向左走,直到回到坐标k,又由于k为H,所以H-1,H的个数变为k-1
     
    综上所述,任何情况都会经过有限步使H个数-1,所以任何情况都会经过有限步使H个数变为0即全为T,即总会经过有限次操作后停止。
     
  • 相关阅读:
    drf中 连表深度查询和ListSerializer类包括drf中Response二次封装
    drf中表之间断关联操作
    drf中的序列化家族
    rest_framework框架的封装特点和APIView请求生命周期
    vue项目和django项目交互补充,drf介绍,restful规范
    Vue成绩单
    面向对象编程day2
    面向对象编程day3
    面向对象编程day1
    day13
  • 原文地址:https://www.cnblogs.com/lau1997/p/11380429.html
Copyright © 2011-2022 走看看