标签:模拟,字符串,排序(快排)

这道题可以巧妙地运用结构体中记录在数组中的位置,来对sort做点手脚

题意本身就是记录一些人,他们出生日的日期,然后输出从小到大的名字。如果是同一天,则输出在输入序列中靠后的人。

解决日期的比较本身很简单,但是同天时,输出在输入序列中靠后的人这一点似乎有点不太好做。

然而可以这样做,在struct结构体中定义一个变量level,记录这个对象在数组中的对象,在cmp函数中,如果发现是同年同月同日生,就返回a.level > b.level,这样在排序中,就会导致输入序列中靠后的人排在前面。

以下是关键代码:

struct sdata
{
string name;
int year, month, day;
int level;
sdata(string n = "",int y = 0,int m = 0,int d = 0,int l = -1)
:name(n),year(y),month(m),day(d),level(l) {}
}p[N]; bool cmp(sdata& a, sdata& b)
{
if (a.year != b.year)
return a.year < b.year;
if (a.month != b.month)
return a.month < b.month;
if (a.day != b.day)
return a.day < b.day;
return a.level > b.level;
}

最新文章

  1. node使用xml-writer生成本地XML文件实例
  2. WPF DataGrid绑定到数据源的方法
  3. CentOS6.5修改yum源
  4. HighCharts日期及数值格式化
  5. [codeforces 339]C. Xenia and Weights
  6. 16.C#初见Lambda表达式及表达式树(九章9.1-9.3)
  7. js分页
  8. USACO Section 2.3: Money Systems
  9. 对比C++中的指针和引用
  10. 对人脑处理视觉的描述(摘《学习OpenCV(中文版)》)
  11. IOS应用安全(五):高级Runtime分析和操作
  12. JSON 格式化为易读格式的字符串
  13. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结
  14. Ajax 模糊查询的简单实现
  15. selenium常用操作
  16. HTML+CSS 对于英文单词强制换行但不截断单词的解决办法
  17. (转载)C#使用MemoryStream类读写内存
  18. php 处理上百万条的数据库如何提高处理查询速度
  19. JS中的call()方法和apply()方法用法总结
  20. shell习题第5题:批量更改文件后缀名

热门文章

  1. 【HANA系列】SAP UI5上传图片 用XSJS存储在HANA中的方法
  2. nginx配置thinkphp项目(nginx下去掉index.php)
  3. tarjan缩点相关知识及代码
  4. vue如何实现热更新
  5. 【Qt开发】布局控件之间的间距设置
  6. Jmeter 04 Jmeter变量的使用
  7. 牛客小白月赛13-H(单调栈+树状数组)
  8. java集群技术(转)
  9. gym102215题解
  10. 常用的框架伪静态(Apache转Nginx)