TLE65分求调
查看原帖
TLE65分求调
936276
zyzfido楼主2023/4/8 18:34

rt,萌新用贪心+堆维护了一通,结果TLE了qwq

#include<bits/stdc++.h>
using namespace std;
struct node{
	int id,l,r;
}a[1000005];
priority_queue<int,vector<int>,greater<int> > q;
bool cmp(node x,node y){
	return x.l<y.l;
}
int main(){
	int n,k,ans=-1,cnt,t1,t2;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
	  cin>>a[i].l>>a[i].r;
	  a[i].id=i;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++){
	  q.push(a[i].r);
	  if(q.size()>k)
	    q.pop();
	  if(q.size()==k){
	  	cnt=q.top()-a[i].l;
	  	if(cnt>ans)
	  	  ans=cnt,t1=a[i].l,t2=q.top();
	  }
	}
	cout<<ans<<endl;
	for(int i=1;i<=n;i++){
	  if(a[i].l<=t1&&a[i].r>=t2){
	  	cout<<a[i].id<<" ";
	  	k--;
	  }
	  if(k==0)
	    break;
	}
	return 0;
}

评测结果

2023/4/8 18:34
加载中...