题解 | #复数集合#

复数集合

http://www.nowcoder.com/practice/abdd24fa839c414a9b83aa9c4ecd05cc

一次堆排序当然比很多次sort快很多 一次堆排序虽然和一次快排时间复杂度一样,但是优先队列的使用是整个堆排序流程的拆散、充分利用,做入堆、出堆这么多事情,其实整体只不过是一次堆排序,是一次建堆、输出序列的顺序打乱版本而已。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
#include <string>
#include <vector>

using namespace std;

class Complex{
public:
	int real;
	int imag;
	Complex(int a, int b):real(a),imag(b){}
	bool operator<(const Complex &c) const {
		if(real*real+imag*imag==c.real*c.real+c.imag*c.imag){
			return imag > c.imag;
		}else{
			return real*real+imag*imag < c.real*c.real+c.imag*c.imag;
		}
	}
};



int main(){
	int n;
	while(scanf("%d",&n) != EOF){
		priority_queue<Complex> q;
		while(n--){
			string s;
			cin >> s;
			if(s == "Pop"){
				if(q.empty()){
					printf("empty\n");
				}else{
					Complex current = q.top();
					q.pop();
					printf("%d+i%d\n", current.real, current.imag);
					printf("SIZE = %d\n", q.size());
				}
			}else{
				int a,b;
				scanf("%d+i%d", &a, &b);
				q.push(Complex(a,b));
				printf("SIZE = %d\n",q.size());
			}
		}
	}
	return 0;
}

//int main(){
//	int n;
//	while(scanf("%d",&n) != EOF){
//		vector<Complex> v;
//		while(n--){
//			string s;
//			cin >> s;
//			if(s == "Pop"){
//				if(v.empty()){
//					printf("empty\n");
//				}else{
//					Complex current = v[v.size()-1];
//					v.erase(v.end()-1);
//					printf("%d+i%d\n", current.real, current.imag);
//					printf("SIZE = %d\n", v.size());
//				}
//			}else{
//				int a,b;
//				scanf("%d+i%d", &a, &b);
//				v.push_back(Complex(a,b));
//				sort(v.begin(),v.end());
//				printf("SIZE = %d\n",v.size());
//			}
//		}
//	}
//	return 0;
//}
全部评论

相关推荐

最近又搬回宿舍了,在工位坐不住,写一写秋招起伏不断的心态变化,也算对自己心态的一些思考表演式学习从开始为实习准备的时候就特别焦虑,楼主一开始选择的是cpp后端,但是24届这个方向已经炸了,同时自己又因为本科非92且非科班,所以感到机会更加迷茫。在某天晚上用java写出hello&nbsp;world并失眠一整晚后选择老本行干嵌入式。理想是美好的,现实情况是每天忙但又没有实质性进展,总是在配环境,调工具,顺带还要推科研。而这时候才发现自己一直在表演式学习,徘徊在设想如何展开工作的循环里,导致没有实质性进展。现在看来当时如果把精力专注在动手写而不是两只手端着看教程,基本功或许不会那么差。实习的焦虑5月,楼主...
耶比:哲学上有一个问题,玛丽的房间:玛丽知道眼睛识别色彩的原理知道各种颜色,但是她生活在黑白的房间里,直到有一天玛丽的房门打开了她亲眼看到了颜色,才知道什么是色彩。我现在最大可能的减少对非工作事情的思考,如果有一件事困扰了我, 能解决的我就直接做(去哪里或者和谁吵架等等……),解决不了的我就不想了,每一天都是最年轻的一天,珍惜今天吧
投递比亚迪等公司10个岗位 > 秋招被确诊为…… 牛客创作赏金赛
点赞 评论 收藏
分享
11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务