洛谷P1105 普及- 生日
2024-09-05 16:36:19
标签:模拟,字符串,排序(快排)
这道题可以巧妙地运用结构体中记录在数组中的位置,来对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;
}
最新文章
- node使用xml-writer生成本地XML文件实例
- WPF DataGrid绑定到数据源的方法
- CentOS6.5修改yum源
- HighCharts日期及数值格式化
- [codeforces 339]C. Xenia and Weights
- 16.C#初见Lambda表达式及表达式树(九章9.1-9.3)
- js分页
- USACO Section 2.3: Money Systems
- 对比C++中的指针和引用
- 对人脑处理视觉的描述(摘《学习OpenCV(中文版)》)
- IOS应用安全(五):高级Runtime分析和操作
- JSON 格式化为易读格式的字符串
- 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结
- Ajax 模糊查询的简单实现
- selenium常用操作
- HTML+CSS 对于英文单词强制换行但不截断单词的解决办法
- (转载)C#使用MemoryStream类读写内存
- php 处理上百万条的数据库如何提高处理查询速度
- JS中的call()方法和apply()方法用法总结
- shell习题第5题:批量更改文件后缀名