Nswoj每日一题:一种排序
来源:互联网 发布:阅后即焚软件 编辑:程序博客网 时间:2024/06/06 04:21
[一种排序]
首先使用结构体保存这个长方形的特点(编号,长,宽);
然后输入每个信息同时对长宽进行位置交换(保证长>宽);
使用sort函数对(0,m)区间内的所有长方形按照Judge()的规则进行排序;
最后用tem1,tem2,tem3保存每个长方形的信息与所有长方形比较,如果不同就打印;
*(因为之前已经做过排序所以相同的长方形已经在相邻的区间内,所以不会打印出来相同的长方形);
#include<iostream>#include<algorithm>using namespace std;struct Rangle {int card;int length;int width;}RangleArray[1000];bool Judge(Rangle a_Rangle, Rangle b_Rangle) {if (a_Rangle.card != b_Rangle.card) {return a_Rangle.card < b_Rangle.card;}else {if (a_Rangle.length != b_Rangle.length) {return a_Rangle.length < b_Rangle.length;}else {return a_Rangle.width < b_Rangle.width;}}}int main() {int n;cin >> n;while (n--) {int m;cin >> m;//ranglesfor (int i = 0; i < m; i++) {cin >> RangleArray[i].card >> RangleArray[i].length >> RangleArray[i].width;if (RangleArray[i].length < RangleArray[i].width) {int temp = RangleArray[i].length;RangleArray[i].length = RangleArray[i].width;RangleArray[i].width = temp;}}sort(RangleArray, RangleArray + m, Judge);int tem1 = -1, tem2 = -1, tem3 = -1;for (int i = 0; i < m; i++) {if (tem1 != RangleArray[i].card || tem2 != RangleArray[i].length || tem3 != RangleArray[i].width) {cout << RangleArray[i].card << ' ' << RangleArray[i].length << ' ' << RangleArray[i].width << endl;}tem1 = RangleArray[i].card;tem2 = RangleArray[i].length;tem3 = RangleArray[i].width;}}return 0;}
阅读全文
0 0
- Nswoj每日一题:一种排序
- Nswoj每日一题:括号配对问题
- Nswoj每日一题:Binary String Matching
- Nswoj每日一题:Magic Pen
- Nswoj每日一题:水仙花数
- Nswoj每日一题:街区最短路径问题
- acm每日一练之一种排序
- 每日一题32:排序
- <每日一题>快速排序
- <每日一题>冒泡排序
- 每日一题(91) - 插入排序
- 每日一题(92) - 快速排序
- 每日一题(92) - 归并排序
- 每日一题(94) - 堆排序
- 每日一题之排序算法专题
- 每日一题4:快速排序
- 每日一题6:位图向量排序
- 每日一题30:拓补排序
- VQA 之 Multimodal Compact Bilinear Pooling
- Java 与 R 交互--Java调用R函数-Rserver方式
- 在ANDROID手机上安装基本开发环境
- HTTP Live Streaming (HLS)
- 树莓派3b使用dh11监控
- Nswoj每日一题:一种排序
- LeetCode——3. Longest Substring Without Repeating Characters(字符串+思维)
- MySQL从头至尾汇总(1.安装篇)
- 连续子数组的最大和(数组)
- 制作镜像注意事项
- tesseract-ocr 实现图片识别功能
- 前端之js之深拷贝和浅拷贝
- TFS在项目中DevOps落地进程(下)
- 总浮动时间和自由浮动时间区别