博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyoj- 117 求逆序数 && hdu-sort it----> 树状数组
阅读量:4286 次
发布时间:2019-05-27

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

nyoj-117(离散化)

#include
#include
#include
using namespace std;long long a[1000009];int n;struct ni{ int v,w;}b[1000009];int cmp(ni q,ni p){ if(q.v!=p.v) return q.v
0) { res+=a[pos]; pos-=lowbit(pos); } return res;}void plus(int pos){ while(pos<=n) { a[pos]++; pos+=lowbit(pos); }}int main(){ int m,i; scanf("%d",&m); while(m--) { memset(a,0,sizeof(a)); scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&b[i].v); b[i].w=i; } sort(b+1,b+n+1,cmp); long long k=0; for(i=1;i<=n;i++) { plus(b[i].w); k+=i-sum(b[i].w); } printf("%lld\n",k); }}

hdu-sort it

#include
#include
#include
using namespace std;int a[1005];int n;int lowbit(int x){ return x&(-x);}void add(int pos,int num){ while(pos <= n) { a[pos] += num; pos += lowbit(pos); }}int Get_sum(int pos){ int res = 0; while(pos > 0) { res += a[pos]; pos -= lowbit(pos); } return res;}int main(){ int x; while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); int sum = 0; for(int i = 1; i <= n; i++) { scanf("%d",&x); add(x,1); sum += i - Get_sum(x); } printf("%d\n",sum); }}

转载地址:http://xysgi.baihongyu.com/

你可能感兴趣的文章
数据库中字段类型对应的C#中的数据类型
查看>>
微信网页授权操作逻辑封装-C#实例
查看>>
微信6.0之后,分享接口使用
查看>>
微信js-sdk,分享接口常用逻辑分装
查看>>
SingalR自托管(self-host)实例
查看>>
SingalR自托管(self-host)实例2-实现Wpf客户端和Web客户端矩形同步
查看>>
微信js-sdk 预览图片接口&从拍照或手机相册中选图接口
查看>>
微信js-sdk 上传图片、下载图片接口
查看>>
微信js-sdk 地理位置接口实例
查看>>
微信 js-sdk 界面操作接口使用
查看>>
C# HTML解析工具HtmlAgilityPack使用简介
查看>>
C# HTML解析工具HtmlAgilityPack使用实例(一)
查看>>
C# HTML解析工具HtmlAgilityPack使用实例(二)--Web页面
查看>>
C# HTML解析工具HtmlAgilityPack XPath 模糊查询not()函数和contains()函数
查看>>
C# Windows-API-Code-Pack for .Net
查看>>
C# Windows-API-Code-Pack文件选择对话框实例
查看>>
Vlc.DotNet C#音视频播放器使用说明及简单实例
查看>>
百度音乐Api简单简单实用实例及封装
查看>>
LitJSON .Net开源JSON库、轻量级
查看>>
validateform.js表单验证工具
查看>>