每日一题 day43 打卡

Analysis

因为数据规模,所以我们需要对其进行离散化,新创一个数组a里面来放在我们的初始序列中在这个位置上的数是第几大的这里还要用一个小技巧排序,关于离散化的技巧我们具体在代码里面看

离散化之后我们只对a数组进行操作就好了,每次遇到一个数就把他插到树状数组里面去

双倍经验 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
#define rep(i,s,e) for(register int i=s;i<=e;++i)
#define dwn(i,s,e) for(fegister int i=s;i>+e;--i)
#define maxn 5000000+10
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(int x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int n,ans;
int a[maxn],re[maxn];
int tree[maxn];
inline int lowbit(int x)
{
return x&-x;
}
inline void build(int x,int k)
{
for(int i=x;i<=n;i+=lowbit(i)) tree[i]+=k;
}
inline int ask(int x)
{
int res=;
for(int i=x;i>=;i-=lowbit(i)) res+=tree[i];
return res;
}
signed main()
{
n=read();
rep(i,,n) a[i]=read(),re[i]=a[i];
sort(a+,a+n+);
int m=unique(a+,a+n+)-a-;
rep(i,,n)
{
int now=lower_bound(a+,a+m+,re[i])-a;
ans+=ask(m)-ask(now);
build(now,);
}
write(ans);
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)

最新文章

  1. iPhone Safari下iframe不显示滚动条无法滚动的解决方法
  2. 1、NASA Super Cloud Library(SCL)
  3. Vuforia AR SDK入门
  4. 借助mosquitto“实时”远程监控服务器数据库运行状态
  5. CI框架引入外部css和js文件
  6. poj 2029 Get Many Persimmon Trees (dp)
  7. java基础练习 10
  8. 201521123100 《Java程序设计》 第2周学习总结
  9. 2018年1月 常用的linux命令
  10. Pandaboard ES编译bootloader、xloader、内核、以及安卓系统
  11. django请求生命周期,FBV和CBV,ORM拾遗,Git
  12. 第六节《Git克隆》
  13. 安装netcat(-bash: netcat: command not found)
  14. playframework 一步一步来 之 日志 (三)
  15. docker+rabbitmq的安装
  16. sqlserver分布式 用触发器插入数据
  17. Hibernate- QBC查询方式
  18. Page Control
  19. 3.2 Multi-Master Replication
  20. MFC HTML的img显示摄像头图像

热门文章

  1. Django-11-Form组件
  2. Python-07-高阶函数
  3. springboot+mybatis实现数据库的读写分离
  4. 防止用户重复提交表单数据,session方式,js方式
  5. MPAndroid 的学习
  6. CephFS 使用
  7. Windows双系统
  8. 企业如何避免错误决策?APS系统帮你忙
  9. POSIX多线程
  10. LeetCode刷题:Reverse Words in a String(翻转字符串中的单词)