假定求去最大发帖的前I个人;总贴位N;(I<<N) 其算法如下; //水王发帖算法; candidate[i]; ntimes[i]; bool done=0;//0代表此次无结果;否则成功匹配; void Find(Type* ID,int N) { int a; for(int j=0;j<N) { for(a=0;a<i;a++) { if(ntimes[a]==0) {ntimes[a]=1;done=1;break;} else if(candidate[a]==ID[j]) {ntimes[a]++;done=1;break;} else if((a==i-1)&&(candidate[a]!=ID[j])) {done=0;break;} } if(done=0)//表示此次无匹配结果; for(int b=0;b<i;b++) ntimes[b]--; } } //时间仓促,如有错误,请指出;