从7月16日就开始进行训练了,但是一直到现在感觉对各种算法理解不透彻,脑子里根本知识框架都没有,从今天起,开始整理自己所学的ACM的知识,发表的博客文章也希望对读者有所帮助,也希望有什么好的算法与大家分享~
现在就从最基础的队列来讲,队列最基础的原理就是先进先出,以java为例,用到的类库有PriorityQueue、Queue,里面的好多方法大家查一下API,现在介绍几个比较常用的方法。
PriorityQueue<E>中实现Comparable<>接口,自己根据题意写此接口
Ⅰ.add(E e)将指定元素插入此优先队列中,返回boolean值
Ⅱ.peek() 获取但不移除此队列的头,如果此队列为空,则返回null
Ⅲ.poll() 获取并移除此队列的头,如果此队列为空,则返回 null。
Ⅳ.size() 返回此 collection 中的元素数,返回int型
暂时这么,详细请查API
POJ2051,此题算是直接应用优先队列的题了。
http://poj.org/problem?id=2051
废话不多说,直接贴代码————
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main
{
class Data implements Comparable<Data>
{
int id,interval;
long time;
Data(int id,int in)
{
this.id=id;
time=interval=in;
}
public int compareTo(Data o) {
if(time<o.time)
return -1;
if(time==o.time&&id<o.id)
return -1;
return 1;
}
}
Scanner scan=new Scanner(System.in);
public static void main(String[] args)
{
new Main().run();
}
PriorityQueue<Data> pq=new PriorityQueue<Data>();
void run()
{
String op;
int a,b;
while(true)
{
op=scan.next();
if(op.charAt(0)=='#')
break;
a=scan.nextInt();
b=scan.nextInt();
pq.add(new Data(a,b));
}
int k=scan.nextInt();
while(k-->0)
{
Data temp=pq.poll();
System.out.println(temp.id);
temp.time+=temp.interval;
pq.add(temp);
}
}
}
分享到:
相关推荐
有多个任务一起开始执行,每个任务的时间不同,输出前n次的任务结果
模拟题 要注意时间的处理 使用优先队列处理请求的事件 进行适当的运算符重载,可以简化代码
北大POJ3253-POJ3253-Fence Repair【STL优先队列】 解题报告+AC代码
本篇文章是对优先队列+BFS进行了详细的分析介绍,需要的朋友参考下
NULL 博文链接:https://128kj.iteye.com/blog/1730484
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 2488——dfs深度优先遍历 //给行数列数,求问能否遍历,给出字典序的一种遍历
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
博客链接 http://blog.csdn.net/CABI_ZGX/article/details/52701138
北大POJ1159-Palindrome 解题报告+AC代码
poj分类poj分类poj分类poj分类
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
POJ1503解答 POJ1503解答,正确答案(已通过POJ)