渐变色的绳子     玛丽手中有 n (0  < n  < 1024)条渐变色的绳子,她试着将这些绳子连接得更长。玛丽必须将两条绳子相同颜色的一端连接到一起,来保证连接后的绳子也是渐变色的。玛丽有一个愿望:将手中所有的绳子连接为一条渐变色的绳子。 说明: 
玛丽为每个颜色分配了 ID (整数,0 ~ 65535),相同颜色 ID 相同,不同颜色 ID 不同。这样用两个颜色 ID 来表示一条绳子再好不过。 请大家帮写一个程序,求出她是否可能完成心愿。 

解决方案 »

  1.   

    这个算法应该是剔除重复ID的算法吧,呵呵。我这么理解不知道对不对?还有,就是颜色ID的大小保证了颜色是渐变的么?就是说ID=1和ID=2,一定是按照顺序渐变的么?如果是,那么就简单剔除重复ID,然后排序就可以了
      

  2.   

    只要相同ID(颜色)总数为奇数的颜色数量小于或等于2(或者0)就行了。1、如果所有颜色都是偶数个,那玛丽就可以完成心愿。2、
    比如 ID=1 颜色一共2i+1个,
         ID=2 颜色一共2j+1个(i,j为非负整数)。
      2.1其它所有颜色都是偶数个,那玛丽就可以完成心愿。  2.2如果还有其它颜色是奇数个,那玛丽就不可以完成心愿。
      

  3.   

    存不存在两条以上颜色相同的绳子?如果存在,在同一条绳子的一端能不能连接两次?设定相近的颜色有相近的id,找到最大和最小id,最大和最小id计数为1,其余中间
    的颜色id都为2,就可以完成心愿