首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

HDU1896(行列应用)

2012-08-15 
HDU1896(队列应用)题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1896 package D0725import java.

HDU1896(队列应用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1896

 

package D0725;import java.util.*;import java.io.*;public class HDu1896 {public static void main(String[] args) throws IOException {StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PriorityQueue<Stone> pq = new PriorityQueue<Stone>();// 用LInkedList超时int t;st.nextToken();t = (int) st.nval;int n;while (t-- > 0) {pq.clear();st.nextToken();n = (int) st.nval;int pi, di;while (n-- > 0) {st.nextToken();pi = (int) st.nval;st.nextToken();di = (int) st.nval;Stone stone = new Stone(pi, di);pq.add(stone);}// 将扔出去的石头加入队列。忽略下一个石头(偶数石头),当处理到队列中最后一个的时候就是结果int result = 0;// 结果while (!pq.isEmpty()) {Stone s = pq.poll();int spi = s.pi + s.di;Stone sto = new Stone(spi, s.di);pq.add(sto);pq.poll();// 将下一个石头(偶数)留在原地if (pq.isEmpty())result = s.di + s.pi;}System.out.println(result);}}}class Stone implements Comparable<Stone> {public int pi, di;public Stone(int pi, int di) {this.pi = pi;this.di = di;}@Overridepublic int compareTo(Stone o) {if (pi < o.pi)return -1;else if (pi == o.pi) {if (di < o.di)return -1;}return 1;}}


 

热点排行