南阳理工 8 一种排序
来源:互联网 发布:linux cname怎么设置 编辑:程序博客网 时间:2024/05/24 05:52
一种排序
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);
1.按照编号从小到大排序
2.对于编号相等的长方形,按照长方形的长排序;
3.如果编号和长都相同,按照长方形的宽排序;
4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形;- 输入
- 第一行有一个整数 0<n<10000,表示接下来有n组测试数据;
每一组第一行有一个整数 0<m<1000,表示有m个长方形;
接下来的m行,每一行有三个数 ,第一个数表示长方形的编号,
第二个和第三个数值大的表示长,数值小的表示宽,相等
说明这是一个正方形(数据约定长宽与编号都小于10000); - 输出
- 顺序输出每组数据的所有符合条件的长方形的 编号 长 宽
- 样例输入
181 1 11 1 11 1 21 2 11 2 22 1 12 1 22 2 1
- 样例输出
1 1 11 2 11 2 22 1 12 2 1
分析
排序是算法中不可缺少的一个基本功,本题是结构体排序,就是再定义一个排序类型,自定义排序规则;
而且结构体可以一起赋值q[0]=p[0],但不能比较,需要把结构体里的数据一个一个比较
p[i].a==p[i-1].a&&p[i].b==p[i-1].b&&p[i].c==p[i-1].c;
排完序还需要去重,定义另外一个结构体,如果相邻两个不相等,就赋值给另一个结构体,如果相等不做处理
01.
#include<stdio.h>
02.
#include<algorithm>
03.
using
namespace
std;
04.
struct
chang
05.
{
06.
int
a,b,c;
07.
} p[10000],q[10000];
08.
int
paixu(chang x,chang y)
09.
{
10.
if
(x.a==y.a)
11.
if
(x.b==y.b)
12.
return
x.c<y.c;
13.
else
14.
return
x.b<y.b;
15.
else
16.
return
x.a<y.a;
17.
}
18.
int
main()
19.
{
20.
int
m,n,i,j,b,c;
21.
scanf
(
"%d"
,&n);
22.
while
(n--)
23.
{
24.
int
t=0;
25.
scanf
(
"%d"
,&m);
26.
for
(i=0; i<m; i++)
27.
{
28.
scanf
(
"%d %d %d"
,&p[i].a,&b,&c);
29.
if
(b>=c)
30.
{
31.
p[i].b=b;
32.
p[i].c=c;
33.
}
34.
else
35.
{
36.
p[i].b=c;
37.
p[i].c=b;
38.
}
39.
}
40.
sort(p,p+m,paixu);
41.
q[t++]=p[0];
42.
for
(i=1; i<m;)
43.
if
((p[i].a==p[i-1].a)&&(p[i].b==p[i-1].b)&&(p[i].c==p[i-1].c))
44.
i++;
45.
else
46.
{
47.
q[t++]=p[i];
48.
i++;
49.
}
50.
for
(i=0; i<t; i++)
51.
printf
(
"%d %d %d\n"
,q[i].a,q[i].b,q[i].c);
52.
}
53.
return
0;
54.
}
0 0
- 南阳理工 8 一种排序
- 南阳理工:一种排序
- 一种排序 (南阳理工oj 题目8)
- 南阳 8 一种排序
- 南阳理工OJ_ASCII码排序
- 南阳oj第8题一种排序
- 南阳oj 一种排序 题目8
- 南阳ACM8-一种排序
- 南阳理工ACM 540 奇怪的排序
- 南阳理工OJ_三个数从小到大排序
- ASCII码排序(南阳理工OJ)
- 南阳理工OJ---ASCII码排序
- 【南阳 oj】 8--一种排序(sort排序)
- 南阳ACM 题目8:一种排序 Java版
- 南阳理工ACM第8题
- 南阳理工oj题目练习---ASCII码排序
- C语言 南阳理工ACM 4.ASCII码排序
- 南阳理工acm- ASCII码排序 -题目4
- 用U盘重装win7_64_U系统_非gho版
- 导入maven项目
- 全志A20平台调试IR
- ThreadLocal 设计模式 用于 Hibernate 框架
- Mac 通过终端CD命令快速定位到指定文件夹
- 南阳理工 8 一种排序
- Highcharts图表的注解功能
- 银行储蓄系统
- centos 下Sentinel主从切换
- lua面向对象编程中冒号与点号的区别
- tableView.reloadData()无效
- swift 中navigationBar颜色设置
- 用端口映射在Apache中对每个项目分配端口,实现一个端口访问一个网站
- 使用UIWebView加载本地或远程服务器上的网页