题目描述:

一个复数(x+iy)集合,两种操作作用在该集合上:

1、Pop 表示读出集合中复数模值最大的那个复数,如集合为空 输出  empty  ,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE;

2 Insert a+ib  指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE;

最开始要读入一个int n,表示接下来的n行每一行都是一条命令。

输入:

输入有多组数据。
每组输入一个n(1<=n<=1000),然后再输入n条指令。

输出:

根据指令输出结果。

样例输入:
3
Pop
Insert 1+i2
Pop
样例输出:
empty
SIZE = 1
1+i2
SIZE = 0
提示:

模相等的输出b较小的复数。

a和b都是非负数。

import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.lang.Comparable;
import java.util.PriorityQueue;class Main
{public static final boolean DEBUG = false;static class Complex implements Comparable<Complex>{int x, y;public Complex(int x, int y) {this.x = x;this.y = y;}public int compareTo(Complex other) {int p = x * x + y * y;int q = other.x * other.x + other.y * other.y;if (p != q) return q - p;return y - other.y;}}public static void main(String[] args) throws IOException{BufferedReader cin;String s;if (DEBUG) {cin = new BufferedReader(new FileReader("d:\\OJ\\uva_in.txt"));} else {cin = new BufferedReader(new InputStreamReader(System.in));}while ((s = cin.readLine()) != null) {int n = Integer.valueOf(s);PriorityQueue<Complex> pq = new PriorityQueue<Complex>();for (int i = 0; i < n; i++) {s = cin.readLine();if ("Pop".compareTo(s) == 0) {if (pq.isEmpty()) {System.out.println("empty");} else {Complex tmp = pq.poll();System.out.println(tmp.x + "+i" + tmp.y);System.out.println("SIZE = " + pq.size());}} else {int start = s.indexOf(' ') + 1;int end = s.indexOf('+');int x = Integer.valueOf(s.substring(start, end));int y = Integer.valueOf(s.substring(end + 2));Complex tmp = new Complex(x, y);pq.add(tmp);System.out.println("SIZE = " + pq.size());}}}}
}

题目1178:复数集合相关推荐

  1. 北邮机试----复数集合

    题目描述 一个复数(x+iy)集合,两种操作作用在该集合上:     1.Pop 表示读出集合中复数模值最大的那个复数,如集合为空输出  empty ,不为空就输出最大的那个复数并且从集合中删除那个复 ...

  2. 复数集合作为数域C和数域R上的空间

    经常有同学问复数集合作为复数域和实数域上的线性空间的区别,本文给予一个比较详细的解释. 1 线性空间定义的四个要素 线性空间 V ( + , ⋅ ) V(+,\cdot) V(+,⋅)是一个代数系统, ...

  3. 牛客网 |复数集合( 北邮往年复试题)

    题目来源 牛客网北邮往年考题 输入 3 Pop Insert 1+i2 Pop 输出 empty SIZE = 1 1+i2 SIZE = 0 #include<iostream> #in ...

  4. 英文面试题目真实试题集合

    个人信息方面的问题: 针对personal data 1. What's yourname? 2. May I have yourname, please? 3. Are youMr./Miss? 4 ...

  5. tensorflow之复数操作

    1.TensorFlow复数操作 查看全文 http://www.taodudu.cc/news/show-4764309.html 相关文章: 实现复数类中的运算符重载 九度1178 阶乘 c语言 ...

  6. 【机试备考】Day11-复数集合 | 运算符重载

    题目 BUPT 2011 网研 ProblemB 一个复数(x+iy)集合,两种操作作用在该集合上: 1.Pop 表示读出集合中复数模值最大的那个复数,如集合为空 输出 empty ,不为空就输出最大 ...

  7. 王道考研机试指南第2版——题目提交链接

    王道考研机试指南第2版--题目链接 文章来自https://github.com/zguolee/WDAlgorithmsNote/blob/master/README.md 王道考研机试指南第2版- ...

  8. 技术图文:集合技术在求解算法题中的应用

    背景 前段时间,在知识星球立了一个Flag,这是总结Leetcode刷题的第四篇图文. 理论部分 HashSet C# 语言中 HashSet<T> 是包含不重复项的无序列表,称为&quo ...

  9. C#面向集合的扩展(讨论)

    问题引出 C#是一种面向过程的算法设计语言,在处理数学计算时显得力不从心.面向集合是一种比较高阶的特性,允许程序直接对集合进行直接处理,而不用显示进行循环调用,不需要指定路径,因此可以大幅提高开发效率 ...

最新文章

  1. 2021年大数据Kafka(四):❤️kafka的shell命令使用❤️
  2. POJ 1185 炮兵阵地 【状压DP】
  3. Advice for students of machine learning--转
  4. 微软发布ML.NET 1.0,可一键添加机器学习模型
  5. JRebel适用于Gradle Spring Boot应用程序
  6. Sigma Function(LightOJ-1336)
  7. 在深圳待不下去了,换个大城市就好了嘛
  8. [Python] L1-024. 后天-PAT团体程序设计天梯赛GPLT
  9. c语言 软件中断 gcc,不同编译器中断函数的表示方法
  10. CString Format
  11. Q95:纹理映射(Texture Mapping)(3)——Triangle Meshes
  12. 【浙江大学PAT真题练习乙级】1009 说反话 (20分)真题解析
  13. 各种格式的地图瓦片下载
  14. Android APK反编译就这么简单 详解(附图)
  15. 网银汇款提示服务器无响应,为什么我的网上银行支付页面总是未响应
  16. 什么是变量?变量的本质是什么?变量的生命周期和作用域
  17. 大数据实战第十六课(上)-Spark-Core04
  18. 服务器无线桥接怎么设置,路由器怎么设置桥接方法 2个路由器无线桥接设置图解...
  19. 2019很艰难,2020会更好吗
  20. 刚刚整理好-汉字转拼音缩写的函数(C#)

热门文章

  1. 精品网摘:大内核锁将何去何从
  2. 64位openSUSE12.3最完整的安装QQ的方法
  3. ubuntu下eclipse中键盘失灵
  4. WordPress podPress插件‘playerID’参数跨站脚本漏洞
  5. linux m4a 转换成 mp3
  6. Ajax Toolkit Control ——CollapsiblePanelExtender(隐藏显示效果)
  7. HDU 2079 选课时间(题目已修改,注意读题) 母函数 || 多重背包
  8. 一个用BitMap类完成的网页随机码图片生成类
  9. python界面不同按钮实现不同功能-三、PyQt5不同方法创建菜单栏、工具栏和状态栏...
  10. python项目-30 个惊艳的Python开源项目