ACwing 149. 荷马史诗

ACwing 149. 荷马史诗_第1张图片

	#include
#include
#include

using namespace std;

typedef long long LL;
typedef pairPLI;//权值和路径;

int main()
{
 int n,k;
 cin>>n>>k;
 priority_queue,greater>heap;//这里是双数据排序可以取得更小的高度
 for(int i=0;i>x;
   heap.push({x,0});
 }
 //n-m(k-1)=1等价转换而来,最后一层的叶子是k个所以=1;其他是由两个组合成一个的
 while((n-1)%(k-1))heap.push({0,0}),n++;

 //K个一组进行合并
  LL res=0;
  
  while(heap.size()>1)
  {
    LL s=0;
    int depth=0;
    for(int i=0;i

你可能感兴趣的:(ACwing)