题解 P2654 【原核生物培养】
合并果子+石子归并。
取出最小的m个有两种办法,一是堆,而是开第二个队列保证有序(参看合并果子题解。)
堆就不用说了。
新开一个队列就是把剩下的那个放入第二个队列,然后再取就去两个队列中最小的m个。第二个队列一定是有序的。
然后dp
假设有菌AiAi+1……Aj需要合并的最小消耗,简记为F[i,j].由于是环形的,j最大可以是2*m-1
当i=j时,表示只有一堆石头,不能合并,因此得分为零,所以F[i,j]=0;
当i<j时,可利用最优子结构性质来计算F[i][j],
F[i,j]=F[i,k]+F[k+1,j]+totalValue(i,j)(i<=k<j)