博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT (Advanced Level) 1101. Quick Sort (25)
阅读量:5914 次
发布时间:2019-06-19

本文共 853 字,大约阅读时间需要 2 分钟。

树状数组+离散化

#include
#include
#include
#include
#include
using namespace std;const int maxn=100000+10;int a[maxn],ans[maxn],c[maxn],b[maxn];int n;map
m;int lowbit(int x){ return x&(-x);}void update(int a,int b){ for(int i=a;i<=n;i=i+lowbit(i)) c[i]+=b;}int get(int a){ int res=0; for(int i=a;i>0;i=i-lowbit(i)) res+=c[i]; return res;}void lsh(){ sort(b+1,b+1+n); for(int i=1;i<=n;i++) m[b[i]]=i;}int main(){ scanf("%d",&n); int k=0; memset(c,0,sizeof c); m.clear(); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } lsh(); for(int i=1;i<=n;i++) { if(m[a[i]]==i) { int num=get(m[a[i]]-1); if(num==m[a[i]]-1) ans[k++]=m[a[i]]; } update(m[a[i]],1); } sort(ans,ans+k); printf("%d\n",k); for(int i=0;i

 

转载于:https://www.cnblogs.com/zufezzt/p/5642292.html

你可能感兴趣的文章
从无到有,WebService Apache Axis2初步实践
查看>>
SQL Server 2012笔记分享-58:数据库文件管理2
查看>>
何玺对话苏宁金融洪蜀宁:区块链是颠覆性技术,意义远超互联网
查看>>
十年IT运维谈(五):要专业化还是平台化?
查看>>
Shell和Python学习教程总结
查看>>
X5Pro惊艳双子塔,vivo国际化渐入佳境
查看>>
EonerCMS——做一个仿桌面系统的CMS(六)
查看>>
c# winform 程序打包部署
查看>>
win32自定义控件(虽然不美观,但对理解很有好处)
查看>>
基础才是重中之重——派生类集合与基类集合可以相互转换吗?
查看>>
将字符串"123456"转换成"1,2,3,4,5,6"
查看>>
Jquery imgPreview demos
查看>>
POJ 3261 Milk Patterns
查看>>
羽化在photoshop中的含义
查看>>
Linux iptables防火墙实用模板
查看>>
DataSet批量更新数据库
查看>>
NHibernate 集合映射深入 (第五篇) <set>,<list>,<map>,<bag>
查看>>
C++做client Java做客户端传送数据
查看>>
从Windows 服务器通过sync向Linux服务器定时同步文件
查看>>
数据结构图之四(最短路径--弗洛伊德算法)
查看>>