【求助】这方法为什么不行?用优先队列的方法或思路有错吗orz
查看原帖
【求助】这方法为什么不行?用优先队列的方法或思路有错吗orz
246979
SalomeJLQ楼主2020/7/24 21:06

我的思路是:

读入数据把每个距离都存入优先队列,然后每次花费一个路标把堆顶元素砍掉一半。

这思路感觉没什么问题啊,样例是过的,感觉代码也没啥问题啊orzorzorzorz

#include<bits/stdc++.h>
using namespace std;
priority_queue<int>juli;
int l,n,k,i,x,y;
int main(){
	cin>>l>>n>>k;
	for(i=0;i<n;i++){
		cin>>x;
		juli.push(x-y);
		y=x;
	}
	while(k>0){
		x=juli.top();
		juli.pop();
		if(x%2==0){x/=2;juli.push(x);}
		else{
			x=x/2+1;
			juli.push(x);
		}
		k--;
	}
	cout<<juli.top();
	return 0;
} 

错哪儿了,各位帮忙看一下吧orzorzorzorz

2020/7/24 21:06
加载中...