在线散分
一个从C1~Cn的序列,Ci与Cj之间的冲突为Cij,如何将它们分到m个桶里,使总体冲突最小(如:m=25,n=1000)
[解决办法]
问题我没解决,说说思路:
(我假设全部的Cij> 0,Cii==0)如果全部放到一个桶里,那么冲突总量:
C12+C13+C14+...+C1n
+C23+C24+...+C2n
C(n-1)n
将所有的Cij排序,然后先大后小扫描。eg:假设C12最大,那么先把C1放在第一桶,C2放第二桶;
在m个桶全部使用后,对剩下的Cij:
问题转化:怎么放使Cij出现的数目最少(从大到小扫描Cij,放置Cj、Ci,避免Cj、Ci放到一起,直到不可避免地要使Cj、Ci放到一桶,)