现在有一个集合1 里面有 A ,B,C, D....等等项
另一个集合2里面有 AB, AC,ABC,BCE,.....等等集合1的组合的项目  在集合2中 每一项有数字代表优先级我想知道  集合1中 怎样组合 之后的优先级是最高的  
例如 
当AB AC 这两个优先级为 1, 2 时
取 AC 
在集合1 中剔除A,C,这两项 继续取剩下所有的 组合最优先的 
我应该表达清楚了吧··~~~~~~~~

解决方案 »

  1.   

    1、读取集合2中优先级最高的组合,如AC
    2、用在集合1中的数据组成这个组合,如A,C
    3、若集合1中不可以组成,就删除集合2中包括该组合的项,如,AC,ABC,然后回到第一步,集合2为空结束
       若集合1中可以组成,就走第4步
    4、组合,删除集合1中的用到的数据,删除集合2中包含用到的集合1中用到的数据的所有项
    5、留下的数据分为集合11,集合22
    6、循环第一步,知道集合1为空,或者集合2为空
    7、结束。
    思路大概就是这样,虽然表达的有点乱,但是跟楼主风格比较接近
      

  2.   

    哥您真行 我大概的思路和你差不多 但是在你的3步和第4步的处理上 有点~~~
    比如我想 AB 已经在AC AD 中的优先级是最高的了 
    那么 剔除AB 在集合1中 
    其他继续在集合B中找最高的 
    但是有一点的是  我一个ABC 和AB   就是说 三项和两项 是该怎么判定优先级呢?