zoukankan      html  css  js  c++  java
  • hdu1438——钥匙计数

    钥匙计数之一

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 2136    Accepted Submission(s): 1018

    Problem Description
    一把锁匙有N个槽,槽深为1,2,3,4。每锁匙至少有3个不同的深度且至少有1对相连的槽其深度之差为3。求这样的锁匙的总数。
     
    Input
    本题无输入
     
    Output
    对N>=2且N<=31,输出满足要求的锁匙的总数。
     
    Sample Output
    N=2: 0 N=3: 8 N=4: 64 N=5: 360 .. .. .. .. .. .. .. N=31: ... 注:根据Pku Judge Online 1351 Number of Locks或 Xi'an 2002 改编,在那里N<=16
     
    Author
    ecjtu_zhousc
     
    题目链接:
     
     
    解题思路:
     
    一道经典的递归思路题。
     
    1.在填入i槽孔前已经是钥匙,那么第i位无论是哪个深度的槽孔都是钥匙。
    2.在填入i槽孔前不是钥匙。
      (1)i槽孔填入2/3成为钥匙,那么之前i-1个槽孔由1/4组成并且不为仅有1或者仅有4.
      (2)i槽孔填入1/4成为钥匙,那么第i-1槽孔为4/1。
     
    那么我们将这些加起来是不是就是答案呢?清楚这样一个思路后,我们就要进行计算。
     
    a[i]+=a[i-1]*4;//填入槽孔前已经是钥匙
    a[i]+=[2^(i-1)-2]*2;//填入2/3成为钥匙
    temp=[4^(i-2)-2^(i-2)]*2-b[i-1];//填入1/4成为钥匙
    a[i]+=temp;
    b[i]=a[i-1]*2+temp;
     
    可能你会有这样的想法:在计算temp时4^(i-2),因为是4个数字随机,会出现例如这样的情况:
    i=8。当前i-1为2314231,而现在该填入第i位4。而在填入前,i=7时已经是钥匙了。
    temp计算时会减去b[i-1],b[i-1]=a[i-2]*2+填入1/4成为钥匙。
    仔细思考一下,刚刚举过的例子在这里是被减去了的。
  • 相关阅读:
    Halcon 如何将图像转化为矩阵形式
    Halcon 图像分割
    Halcon intensity算子,用于计算灰度的均值和方差
    Halcon draw_region接口
    Halcon scale_image 函数用法技巧
    Halcon 保存图像
    Halcon 读取多张图片
    Halcon 算子 sub_image add_image mult_image div_image
    Halcon 算子 get_grayval 用于读取图像的灰度值
    Halcon 算子 convert_image_type 转换图像类型
  • 原文地址:https://www.cnblogs.com/noback-go/p/11138028.html
Copyright © 2011-2022 走看看