P1177快速排序
这是一个快速排序的模板题。拿到题后便写了quicksort(确定一个基准数,利用两个哨兵,把大的放右边,小的放左边,再递归实现排序),但是竟然TLE了60pts(???),于是翻看dalao们的题解,发现了堆排序(在清北学会了,但是一个学期后给忘了),然后看到了一个multiset(set去重,它不去),这个STL插入后自动排序,然后利用迭代器进行输出。STL大法好。
1.要养成用标准读入与输出的习惯
2.善于利用STL,平日还要多加积累
3.牢记迭代器语法
代码:
1 #include<iostream> 2 #include<set> 3 #include<cstdio> 4 #define N 1000005 5 using namespace std; 6 7 int n; 8 int main(){ 9 multiset<int>a; 10 scanf("%d",&n); 11 int x; 12 for(int i=1;i<=n;i++){ 13 scanf("%d",&x); 14 a.insert(x); 15 } 16 multiset<int>::iterator it; 17 for(it=a.begin();it!=a.end();it++){ 18 cout<<*it<<" "; 19 } 20 return 0; 21 }
待到oi十一月,我花开后百花杀。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步