本文整理汇总了C#中PriorityQueue.buildHeap方法的典型用法代码示例。如果您正苦于以下问题:C# PriorityQueue.buildHeap方法的具体用法?C# PriorityQueue.buildHeap怎么用?C# PriorityQueue.buildHeap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PriorityQueue
的用法示例。
在下文中一共展示了PriorityQueue.buildHeap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
public static void Main()
{
int T = int.Parse(Console.ReadLine());
while (T--> 0)
{
string[] tokens = Console.ReadLine().Split();
int n = int.Parse(tokens[0]);
int m = int.Parse(tokens[1]);
tokens = Console.ReadLine().Split();
Queue<PrintItem> queue = new Queue<PrintItem>();
PriorityQueue priority_queue = new PriorityQueue();
for (int i = 0; i < n; i++)
{
int pr = int.Parse(tokens[i]);
PrintItem item = new PrintItem(i, pr);
queue.Enqueue(item);
priority_queue.Enqueue(item);
}
priority_queue.buildHeap();
int count = 0;
PrintItem highPItem = priority_queue.extractMin(); ;
while (queue.Count > 0)
{
PrintItem item = queue.Dequeue();
if (item.Priority == highPItem.Priority)
{ // add its print time
count++;
if (item.Index == m)
break;
highPItem = priority_queue.extractMin();
}
else // we did not get high priority item push into queue
{
queue.Enqueue(item);
}
}
Console.WriteLine(count);
}
}