新的思路,优先队列
查看原帖
新的思路,优先队列
837396
To_Carpe_Diem楼主2024/8/7 11:46

我发现好像优先队列可以做,每次不够时取小根堆的堆顶。

int s = 0,i = 1,now = 0,cost = 0;
	q.push(c[1]);
	while(i != n){
		if(now - v[i] < 0){
			int p;
			for(int j = 1;j <= 1e9;j ++){
				if(now + d * j >= v[i]){
					p = j;
					break;
				}
			}
			cost += p * q.top();
			now += d * p;
		}
		now -= v[i];
		i ++;
		q.push(c[i]);
	}

这样一来 cost 就是花费。 各位大佬帮我看看这样有什么问题没有。

2024/8/7 11:46
加载中...