CodeForces
来源:互联网 发布:lol比赛数据查询 编辑:程序博客网 时间:2024/06/05 13:32
我就很好奇,为什么会有二分这种操作。。非常好奇,
鬼能看出来他最后那个数字是递减的啊= =;然后迷之超时。
然后看了一下lower_bound()的用法,这个序列是递减的,而一般lower_bound()查找的都是从小到大排序好的序列,所以只需要在最后面加一个greater<int>()就可以了。像这样:
lower_bound(a,a+n,greater<int>())-a; 头文件#include<functional>
#include<bits/stdc++.h>using namespace std;const int N=200005;vector<int>mp[N];int a[N];template<class T>inline bool scan(T &ret){ char c; int sgn; if(c=getchar(),c==EOF) return 0; while(c!='-'&&(c<'0'||c>'9')) c=getchar(); sgn=(c=='-')?-1:1; ret=(c=='-')?0:(c-'0'); while(c=getchar(),c>='0'&&c<='9')ret=ret*10+(c-'0'); ret*=sgn; return 1;}int main(){ int n; scan(n); int o=0; int i,j; for(i=0;i<=n-1;i++) { int x; scan(x); if(i==0) { a[o]=x; mp[o].push_back(x); o++; } else { int index=lower_bound(a,a+o,x,greater<int>())-a; //printf("index = %d,,o = %d\n",index,o); if(index==o) { a[o]=x; mp[o].push_back(x); o++; } else { a[index]=x; mp[index].push_back(x); } } } int len; for(i=0; i<=o-1; i++) { len=(int)mp[i].size()-1; for(j=0; j<=len; j++) { printf("%d ",mp[i][j]); } printf("\n"); } return 0;}
阅读全文
0 0
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- 命令模式
- Charles抓包工具使用介绍
- 汇编实验报告
- 【2017年11月27日】CSDN博客更新周报
- POJ 1087
- CodeForces
- cookie和session总结
- 欢迎使用CSDN-markdown编辑器
- 关于storm版本的问题
- JSTL
- [Python]如何理解Python中的装饰器
- 计算机视觉牛人博客和代码汇总(全)
- Parameter Server 详解
- POJ 3281 Dining (网络流最大流 拆点建图 Edmonds-Karp算法)