首页 > 其他分享 >图坐标数据结构(结构体)的设计以及栈的应用

图坐标数据结构(结构体)的设计以及栈的应用

时间:2022-10-26 20:07:59浏览次数:103  
标签:Node include int Res 坐标 应用 push 数据结构 Vec


题目描述

P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)

如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。

图坐标数据结构(结构体)的设计以及栈的应用_mpx

 

输入描述:


第一行输入点集的个数 N, 接下来 N 行,每行两个数字代表点的 X 轴和 Y 轴。 对于 50%的数据, 1 <= N <= 10000; 对于 100%的数据, 1 <= N <= 500000;


输出描述:


输出“最大的” 点集合, 按照 X 轴从小到大的方式输出,每行两个数字分别代表点的 X 轴和 Y轴。


示例1

输入

复制


5 1 2 5 3 4 6 7 5 9 0


输出

复制


4 6 7 5 9 0


#include<stack>
#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;

struct Node{
int x,y;
Node(){}
Node(int x,int y){
this->x = x;
this->y = y;
}
};

bool Cmp(const Node& A,const Node& B){
return A.x < B.x;
}

int main(){
int N;
vector<Node> Vec;
stack<Node> S;
cin >> N;
for(int i = 0;i < N;i ++){
int tmpx,tmpy;
cin >> tmpx >> tmpy;
Node tmp = Node(tmpx,tmpy);
Vec.push_back(tmp);
}
sort(Vec.begin(),Vec.end(),Cmp);
for(int i = 0;i < N;i ++){
if(S.empty() || S.top().y > Vec[i].y){
S.push(Vec[i]);
}
else{
while(!S.empty() && S.top().y <= Vec[i].y){
S.pop();
}
S.push(Vec[i]);
}
}
vector<Node> Res;
while(!S.empty()){
Res.push_back(S.top());
S.pop();
}
for(int i = Res.size() - 1;i >= 0;i --){
printf("%d %d\n",Res[i].x,Res[i].y);
}
return 0;
}

 

标签:Node,include,int,Res,坐标,应用,push,数据结构,Vec
From: https://blog.51cto.com/u_13121994/5798283

相关文章

  • python进阶之路21 正则应用 第三方模块之requests模块 openpyxl模块 简易爬虫(panda
    作业讲解"""网络爬虫没有我们现在接触的那么简单 有时候页面数据无法直接拷贝获取 有时候页面还存在防爬机制弄不好ip会被短暂拉黑"""http://www.redbull.com.cn/ab......
  • 探索人机深度融合的高可用性人工智能应用
    目前,人工智能技术在世界范围内热度极高,但却出现了“雷声大、雨点小”的现象。一方面,随着近年来深度学习技术的不断发展,计算能力的不断提高,更深更复杂网络的普及使用,加......
  • 将应用迁移至云端面临的问题​
    传统软件的架构设计就是为了运行在公司的企业防火墙内。如果软件开发是在数年以前完成的,那么软件对其运行所处的物理硬件甚至开发使用的技术堆栈非常可能有着很高的依赖性。......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;(2)下发指令删除s1上的流表数据。创建并......
  • 将应用迁移至云端面临的问题
    传统软件的架构设计就是为了运行在公司的企业防火墙内。如果软件开发是在数年以前完成的,那么软件对其运行所处的物理硬件甚至开发使用的技术堆栈非常可能有着很高的依赖性......
  • istio部署demoapp应用 (十一)负载均衡
    destinationrule-demoapp.yamlapiVersion:networking.istio.io/v1beta1kind:DestinationRulemetadata:name:demoappspec:host:demoapptrafficPolicy:......
  • 实验7:基于REST API的SDN北向应用实践
    实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。实验环境下载虚拟机软件OracleVisualBox或VMwar......
  • istio部署demoapp应用 (十)流量镜像
    virtualservice-demoapp.yamlapiVersion:networking.istio.io/v1beta1kind:VirtualServicemetadata:name:demoappspec:hosts:-demoapphttp:-name:......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、基本要求编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight ......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接;(2)下发指令删除s1上的流表数据。delete.py的代码#......