一种排序(set集合 结构体的应用)
来源:互联网 发布:淘宝账号 卖家 买家 编辑:程序博客网 时间:2024/05/29 16:19
一种排序
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);
1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长都相同,按照长方形的宽排序;4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形;
输入
第一行有一个整数 0
#include<iostream>#include<stdio.h>#include<algorithm>#include<set>using namespace std;int num =0;struct Shape{ int indx; int l; int w;};class Mysort{ public: bool operator()(const Shape &a,const Shape &b) { if(a.indx != b.indx)//按照indx从小到大进行排序 return a.indx < b.indx; else if(a.l != b.l )//按照长度进行从小到大进行排序 return a.l < b.l; else return a.w < b.w;//按照宽度进行从小到大进行排序 }};void OUTPUT(const Shape &a){ printf("%d %d %d\n",a.indx,a.l,a.w);}int main(){ int ncase; scanf("%d",&ncase); while(ncase--) { int mm; scanf("%d",&mm); set<Shape,Mysort> pp; while(mm--) { Shape a; int l ,w; scanf("%d%d%d",&a.indx,&l,&w); a.l = max(l,w); a.w = min(l,w); pp.insert(a); } for_each(pp.begin(),pp.end(),OUTPUT); } return 0;}
阅读全文
0 0
- 一种排序(set集合 结构体的应用)
- 一种排序STL在set中的结构体排序
- set集合的排序
- c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器。
- nyoj8(一种排序)(结构体的二级排序)
- NYOJ 8 一种排序 (结构体排序)
- 针对hibernate中 Set 集合 的排序
- 对hibernate的set集合进行排序
- java的set集合简单排序
- 对hibernate的set集合进行排序
- 对hibernate的set集合进行排序
- COJ 1239集合set的简单应用
- list、set、map集合的综合应用
- 一种排序(C语言结构体)
- 【NY8】一种排序sort+结构体
- set集合实现排序
- set集合排序
- Hibernate Set集合排序
- Nmap插件编写之MySQL写库
- Oracle 服务总线介绍
- JavaSE ——JDBC
- 分布式数据库数据一致性原理说明与实现
- PostgreSQL之时间戳自动更新
- 一种排序(set集合 结构体的应用)
- VM虚拟机设置Linux(Centos6.9)配置NAT连接
- OpenAPI Specification
- 如何从MongoDB迁移到MySQL?这有现成经验!
- TCP/IP(一)
- 对list的线程不安全操作
- 一个Java程序员收藏的网站
- AlexNet 网络详解及Tensorflow实现源码
- 从事大数据征信行业,你必须知道这些