最多就是用到了优先队列,pair这些
by fgcfgc @ 2024-04-10 22:36:12
@[fgcfgc](/user/313161)
不是你好歹贴个代码出来啊
什么都不给怎么调?
by lunjiahao @ 2024-04-11 09:24:29
{
int N,K;cin>>N>>K;
for(int i=1;i<=N;i++)
{
int tem;cin>>tem;
que.push(make_pair(tem,i));
last[i]=i-1;
next[i]=i+1;
}
while(que.size()!=N-K)
{
int data=que.top().first;
int xy=que.top().second;
que.pop();
if(zen[xy])
{
que.push(make_pair(data+zen[xy],xy));
zen[xy]=0;
}
else
{
zen[last[xy]]+=data;
zen[next[xy]]+=data;
next[last[xy]]=next[xy];
last[next[xy]]=last[xy];
}
}
int min=1000000000;
while(!que.empty())
{
int xy=que.top().second;
a[xy]=que.top().first+zen[xy];
que.pop();
if(xy<min) min=xy;
}
for(int i=1;i<=N-K;i++)
{
cout<<a[min]<<' ';
min=next[min];
}
return 0;
}
by fgcfgc @ 2024-04-11 09:42:14