博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2299 Ultra-QuickSort
阅读量:5806 次
发布时间:2019-06-18

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

//相同元素编号大较大 这么就可以避免处理有重复元素的情况。  1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn=500000+5; 6 struct item 7 { 8 int num; 9 int id;10 bool operator <(const item &a)const11 {12 if(num==a.num) return id>a.id;13 return num>a.num;14 }15 }s[maxn];16 int n;17 int c[maxn];18 int lowbit(int x)19 {20 return x&-x;21 }22 int sum(int x)23 {24 int ret=0;25 while(x>0)26 {27 ret+=c[x];28 x-=lowbit(x);29 }30 return ret;31 }32 void add(int x)33 {34 while(x<=n)35 {36 c[x]++;37 x+=lowbit(x);38 }39 }40 int main()41 {42 while(scanf("%d",&n)!=EOF&&n)43 {44 for(int i=1;i<=n;i++)45 {46 scanf("%d",&s[i].num);47 s[i].id=i;48 }49 sort(s+1,s+1+n);50 long long tot=0;51 memset(c,0,sizeof(c));52 for(int i=1;i<=n;i++)53 {54 tot+=sum(s[i].id-1);55 add(s[i].id);56 }57 printf("%lld\n",tot);58 }59 return 0;60 }

 

转载于:https://www.cnblogs.com/sooflow/p/3264721.html

你可能感兴趣的文章
python 中类中 __slots__
查看>>
C++ 随机数
查看>>
Linux常用命令笔记---计划任务
查看>>
配置Nutch模拟浏览器以绕过反爬虫限制
查看>>
如何使用netfilter/iptables构建防火墙
查看>>
livemesh在远程桌面中的运用
查看>>
蜜罐技术的配置模式和信息收集
查看>>
查看Oracle的实例名
查看>>
Zend Studio去除编辑器的语法警告
查看>>
linux驱动current关键词
查看>>
让SQL再快一点儿
查看>>
而尔维尔
查看>>
ios获取手机状态 idfa idfv 网络类型 分辨率 获取运营商 ip
查看>>
微信小程序下nginx代理wss,实现兼容原本服务协议ws,Java版本
查看>>
Linux RPS RFS
查看>>
通过Secure CRT导出设备配置
查看>>
我的友情链接
查看>>
jmeter从上一个请求使用正则表达式抓取Set-Cookie值,在下一个请求中运用
查看>>
【Mybatis框架】输入映射-pojo包装类型
查看>>
js 动态添加input代码
查看>>