神奇方法
查看原帖
神奇方法
560044
wangyi_c楼主2022/4/29 20:45

本人没用二分答案,用奇特的优先队列,但10分……

求大佬瞅瞅

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

谢谢

2022/4/29 20:45
加载中...