这类题目归结于常用技巧与算法,有很鲜明的套路,重在理解其规则,通常写起来不算太复杂。

题目描述:


题目大致意思:
输入N和最低下限和最高上限,接着输入N个人的编号,美德和天赋。如果美德和天赋都不低于最高上限则被称为圣人,把所有的圣人按照总分从高到低进行排列,如果总分相同,则按美德从高到底进行排序,如果美德值也相同,则按编号从小到大进行排序。
如果天赋值低于最高上限,但是美德值不低于最高上限,则被称为君子,把所有的君子按照总分从高到低进行排列,如果总分相同,则按美德从高到底进行排序,如果美德值也相同,则按编号从小到大进行排序。
如果美德值和天赋值都低于最高上限,但是美德值不比天赋值低,则被称为愚人,把所有的愚人按照总分从高到低进行排列,如果总分相同,则按美德从高到底进行排序,如果美德值也相同,则按编号从小到大进行排序。
接着把所有剩余的按照总分从高到低进行排列,如果总分相同,则按美德从高到底进行排序,如果美德值也相同,则按编号从小到大进行排序。
美德值和天赋值有任何一个低于最低下限的不参与排列。
大致思路:
使用一个结构体来存储每个人的信息,使用四个不同的结构体数组来存储每种人的信息,按照排序规则,分别对四个结构体数组进行排序即可(暴力解决)。
提交结果:

提交代码如下:

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
struct Peopel
{string id;int virtue;int talent;
};
vector<Peopel> shengren;
vector<Peopel> junzi;
vector<Peopel> yuren;
vector<Peopel> xiaoren;
bool cmp1(Peopel p1, Peopel p2)
{if (p1.talent + p1.virtue != p2.talent + p2.virtue)return p1.talent + p1.virtue > p2.talent + p2.virtue;else if (p1.virtue != p2.virtue)return p1.virtue > p2.virtue;elsereturn p1.id < p2.id;
}
int main()
{int n, l, h;cin >> n >> l >> h;for (int i = 0; i < n; i++){Peopel peopel;cin >> peopel.id >> peopel.virtue >> peopel.talent;if (peopel.virtue < l || peopel.talent < l)continue;if (peopel.virtue >= h && peopel.talent >= h)shengren.push_back(peopel);else if (peopel.talent < h && peopel.virtue >= h)junzi.push_back(peopel);else if (peopel.talent < h && peopel.virtue < h && peopel.virtue >= peopel.talent)yuren.push_back(peopel);elsexiaoren.push_back(peopel);}sort(shengren.begin(), shengren.end(), cmp1);sort(junzi.begin(), junzi.end(), cmp1);sort(yuren.begin(), yuren.end(), cmp1);sort(xiaoren.begin(), xiaoren.end(), cmp1);cout << shengren.size() + junzi.size() + yuren.size() + xiaoren.size() << endl;for (int i = 0; i < shengren.size(); i++)cout << shengren[i].id << " " << shengren[i].virtue << " " << shengren[i].talent << endl;for (int i = 0; i < junzi.size(); i++)cout << junzi[i].id << " " << junzi[i].virtue << " " << junzi[i].talent << endl;for (int i = 0; i < yuren.size(); i++)cout << yuren[i].id << " " << yuren[i].virtue << " " << yuren[i].talent << endl;for (int i = 0; i < xiaoren.size(); i++)cout << xiaoren[i].id << " " << xiaoren[i].virtue << " " << xiaoren[i].talent << endl;}

本次提交后累计得分573,排名为13645。

1062 Talent and Virtue(排序)相关推荐

  1. PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 分4个vector,单独排序即可. ac代码 #include<bits/stdc++.h> using namespa ...

  2. 1062 Talent and Virtue (25 分)

    1062 Talent and Virtue (25 分) 题意 先给出三个数N(成员人数),L(及格线),H(优秀线) 给出一组成员信息,包括id,品德,才能,给这组成员排序. 当该成员品德和才能都 ...

  3. 1062 Talent and Virtue 25

    1062 Talent and Virtue 25 题目链接:A1062 Talent and Virtue 25 问题思路 我尝试了两种思路: 根据每个人的分数确定其是哪个级别(rank)的人,以总 ...

  4. PAT 甲级 1062 Talent and Virtue

    1062 Talent and Virtue 题目大意:给出一组人数,按照要求分类再排序输出.圣人是virtue和talent都超过h的人,君子是virtue超过h并且talent位于[l,h)区间内 ...

  5. PAT-B 1015. 德才论(同PAT 1062. Talent and Virtue)

    1. 在排序的过程中,注意边界的处理(小于.小于等于) 2. 对于B-level,这题是比較麻烦一些了. 源代码: #include <cstdio> #include <vecto ...

  6. 1062. Talent and Virtue (25)-PAT甲级真题

    About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about ...

  7. PAT甲级1062 Talent and Virtue

    About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about ...

  8. 1062. Talent and Virtue (25)

    About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about ...

  9. 1062 Talent and Virtue (25分)

    题目地址 About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked a ...

最新文章

  1. 某站点下载资源自己主动评论器
  2. Selenium3+MoocTest环境搭建常见问题解决方案
  3. 编译 PHP7.0为什么那么慢,CentOS 7编译安装php7.0.7以及可能遇到的问题的解决方案...
  4. HDU - 6601 Keen On Everything But Triangle(主席树)
  5. 最新设备可利用积雪发电?UCLA研究出积雪式摩擦奈米发电机
  6. win10如何远程连接BCC云服务器?
  7. verilog 学习记(如何编写assert)
  8. C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解
  9. 利用Depends查看win系统下exe程序的依赖项
  10. 美团2015年校园招聘部分笔试题
  11. 四川轻化工大学计算机网络技术分数线,四川轻化工大学录取投档线
  12. Linux中ps命令 ps aux与ps -ef的区别
  13. 如何找实习工作?怎么准备?
  14. 【我的区块链之路】- 谈一谈IPFS原理及玩法
  15. 电脑游戏业编年史之十二──叛逆
  16. 一、判别一个分解的无损连接性
  17. WPF自定义日期时间控件
  18. 用verilog HDL实现数字基带信号的2FSK调制
  19. DRL实战:DDPG A3C | Gym环境中经典控制问题Pendulum-v0
  20. 富贵不压重发_贵人不顶重发是什么意思(贵人不顶重发出自哪里)

热门文章

  1. linux安装gbase8a
  2. 编写 Matlab mexFunction (C mex)
  3. Navicat 连接Oracle数据库提示cannot create oci handles问题解决方法
  4. Day 7 2021.3.8Final-权限修饰符-部分常用类-集合-泛型
  5. 云计算具有什么平台_云计算?通俗易懂点讲云计算是什么意思?
  6. 【白帽优化大师】免费分享垃圾站截留别人网站流量技术
  7. 关于CSS3:justify-self,justify-items和justify-content之间的区别
  8. Swift学习之闭包
  9. Windows截图工具合集
  10. 「镁客早报」恒大健康称首款电动汽车拟6月投产;产业链透露苹果正悄悄准备Apple Car...