B. Preparing for Merge Sort
来源:互联网 发布:java项目发布到服务器 编辑:程序博客网 时间:2024/05/22 11:16
题目大意:给定长度为n的序列,从首位开始输出递增序列,接着从剩余序列的首位开始输出递增序列,循环直到n个数输出结束。 (1 ≤ n ≤ 2·105)
题目思路:直接模拟n^2的复杂度,不行。这时借用到了二分检索。
补充:upper_bound(首位置,末位置,待查数x,cmp),假如cmp=greater<int>(),则表示在递减序列中,第一个小于x的位置。
代码:
#include<iostream>#include<cstring>#include<cstring>#include<vector>#include<cstdio>#include<algorithm>using namespace std;typedef vector<int> v;typedef vector<vector<int> > vv;int main(){int n,t;while(~scanf("%d",&n)){vv ans(n);v temp(n,-1);for(int i=0;i<n;i++){scanf("%d",&t);int k=int(upper_bound(temp.begin(),temp.end(),t,greater<int>())-temp.begin());ans[k].push_back(t);temp[k]=t;}for(int i=0;temp[i]!=-1&&i<n;i++){for(int j=0;j<ans[i].size()-1;j++){printf("%d ",ans[i][j]);}printf("%d\n",ans[i][ans[i].size()-1]);}}return 0;}
阅读全文
0 0
- B. Preparing for Merge Sort
- Codeforces 847B Preparing for Merge Sort
- B. Preparing for Merge Sort(二分)
- codeforce 847B Preparing for Merge Sort
- Codeforces 847 B. Preparing for Merge Sort (二分)
- 【二分优化】Preparing for Merge Sort CodeForces
- 2017-2018 ACM-ICPCNEERC : Preparing for Merge Sort
- CodeForces 377 B. Preparing for the Contest
- codeforces 377B Preparing for the Contest
- CodeForces 377B Preparing for the Contest
- B. Preparing for the Contest----二分+贪心
- Codeforces 377B . Preparing for the Contest【优先队列】
- CodeForces 377B---Preparing for the Contest(二分+贪心)
- Codeforces Round #222 (Div. 1) B - Preparing for the Contest
- CodeForces 377B-Preparing for the Contest(二分+贪心)
- Codeforces847B Preparing forMerge Sort
- B. Preparing Olympiad
- [LeetCode] merge sort for linked list
- 网页用户登录权限校验的两种实现方式
- Java异常处理
- Python学习之惰性求值
- 【模板】迪杰斯特拉
- kaldi-ctc的安装、编译、测试
- B. Preparing for Merge Sort
- 欢迎使用CSDN-markdown编辑器
- C++错误之严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C4996 'strcpy':
- IRGAN:大一统信息检索模型的博弈竞争
- 对象池模式
- java值传递
- 【UML】关系之关联关系
- 从属性动画看自定义View(1)
- 2017 ACM-ICPC 网络赛 总结