尼玛,这货怎么WA的
查看原帖
尼玛,这货怎么WA的
955954
Miracle_InDream楼主2023/8/16 14:36
#include<bits/stdc++.h>
using namespace std;
int heap_size;
int heap[10005];
int ans=0;
void shift_up(int rt)
{
	while(rt>1&&heap[rt]>heap[rt>>1]){
		swap(heap[rt],heap[rt/2]);
		rt/=2;
	}
}
void push_down(int rt)
{
	int min1=rt;
	if(rt*2<=heap_size&&heap[rt*2]<heap[rt])
		min1=rt*2;
	if(rt*2+1<=heap_size&&heap[rt*2+1]<heap[min1])
		min1=rt*2+1;
	if(rt!=min1)
	{
		swap(heap[rt],heap[min1]);
		push_down(min1);
	}
}
void Del()
{
	swap(heap[1],heap[heap_size]);
	heap_size--;
	push_down(1);
}
void Insert(int x){
	heap_size++;
	heap[heap_size]=x;
	shift_up(heap_size);
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<n;i++)
	{
		heap_size++;
		cin>>heap[heap_size];
		shift_up(heap_size);
	}
	for(int i=1;i<n;i++){
		int sum=heap[1];
		Del();
		sum+=heap[1];
		Del();
		Insert(sum);
		ans+=sum;
	}
	cout<<ans<<endl;
	return 0;
}
2023/8/16 14:36
加载中...