zoukankan      html  css  js  c++  java
  • SRM 616 ColorfulCoins

    题意:给定一个从小到大的货币面值,每一个面额都是其前面面额的倍数(倍数大于等于2),每一种货币面值对应一种颜色,目前不清楚面值与颜色的对应关系。要求用最少的查询次数来确定面额与颜色的对应关系。(一次查询是要求给出面额总数某一个值的货币即可,假设给出的货币数目总是最少的,而且是可行的)

    官方题解:http://apps.topcoder.com/wiki/display/tc/SRM+616

    keypoint:

    1 答案与具体的钱的大小无关,至于相邻钱之间的倍数有关系,假设有n个倍数关系。

    2 假设每一次查询每一种面值的钱的数目为矩阵的行,不同的查询组成矩阵的列,假设我们需要m次查询,则这m次查询组成了一个m行n列的矩阵。矩阵满足以下条件即可: 每一列至少有一个数为1 , 任意两列必须有一个对应元素不同,这样子才能够保证能够区分。 最少需要多少个m呢?

    3 可以把倍数关系从小到大排列起来。

    简单的说当进制为2的时候,m位最多只能填 2^m-1 >=n.

    例子:

    进制: 2    2    3    3    3    3   3

               0    1    1    1    2    2    2
                        1    0    1    2    0    1    2

    进制: 2    2    3    3    3    3   3   3

               0    1     0      1    1    2    2    2
                        1    0    2     1    2    0    1    2


               进制:2    2    2    2    2    3    3   

    0    0    0    1    1    1    1    1
             0    1    1    0    0    1    1    1
             1    0    1    0    1    0    1    2

    通过第一个例子就可以很明显的看出,算法已经非常非常显然了!

  • 相关阅读:
    jQuery事件
    jQuery的效果
    jQuery 选择器
    中级 jQuery 了解
    回调函数 callback()
    预加载
    表格对象的方法
    script中type属性讲解
    将数据渲染到页面的方式:模版
    将数据渲染到页面的几种方式
  • 原文地址:https://www.cnblogs.com/sosi/p/3685768.html
Copyright © 2011-2022 走看看