洛谷——P1966 火柴排队&&P1774 最接近神的人_NOI导刊2010提高(02)
P1966 火柴排队
这题贪心显然,即将两序列中第k大的数的位置保持一致,证明略;
树状数组求逆序对啦
浅谈树状数组求逆序对及离散化的几种方式及应用
方法:从前向后每次将数插入到bit(树状数组)中,求其前缀和(在它之前插入且比它小的数),那么用i(当前插入的数的总数)- 前缀和就是其(以c[i]为结尾)逆序对对数
这个题需要将一个序列按照另一个序列排序,因为只需要移动一个序列,sort排序就有了第k小的数的下标
$c[a[i].id]=b[i].id$
第i小的数在a中的位置就是b中第i小的数应放的位置,相当于以第一个数列为关键字排序第二个数列
#include<bits/stdc++.h> #define N 1010100
using namespace std; const int mod=; int n,c[N],bit[N],ans;
struct node{
int x,id;
}a[N],b[N]; bool cmp(node A,node B){
return A.x<B.x;
} int lowbit(int k){
return k&(-k);
}
void add(int x,int w){
while(x<=n){
bit[x]+=w;
bit[x]%=mod;
x+=lowbit(x);
}
}
int sum(int x){
int res=;
while(x){
res+=bit[x];
x-=lowbit(x);
res%=mod;
}
return res%mod;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i].x),a[i].id=i;
for(int i=;i<=n;i++) scanf("%d",&b[i].x),b[i].id=i;
sort(a+,a++n,cmp);
sort(b+,b++n,cmp);
for(int i=;i<=n;i++)
c[a[i].id]=b[i].id;
for(int i=;i<=n;i++){
add(c[i],);
ans=(ans+(i-sum(c[i])))%mod;
}
printf("%d\n",ans);
return ;
}
P1774 最接近神的人_NOI导刊2010提高(02)
同样的离散化,只不过是从后向前插入,那么其前缀和就是逆序数。
#include<bits/stdc++.h>
#define N 500005
#define ll long long using namespace std; int n,h[N],c[N];
ll ans;
struct node{
int y;ll x;
bool operator<(const node A)const {
return x==A.x ? y<A.y :x<A.x;
}
}e[N]; void update(int k,int x){
for(;k<=n;k+=k&-k) c[k]+=x;
} ll query(int k){
ll an=;
for(;k;k-=k&-k) an+=c[k];
return an;
} int main()
{
cin>>n;
for(int i=;i<=n;i++)
scanf("%lld",&e[e[i].y=i].x);
sort(e+,e++n);
for(int i=n;i;i--){
ans+=query(e[i].y-);
update(e[i].y,);
}cout<<ans;
// printf("%lld",ans);
return ;
}
洛谷——P1966 火柴排队&&P1774 最接近神的人_NOI导刊2010提高(02)的更多相关文章
- 洛谷P1774 最接近神的人_NOI导刊2010提高(02) [2017年6月计划 线段树03]
P1774 最接近神的人_NOI导刊2010提高(02) 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门 ...
- P1774 最接近神的人_NOI导刊2010提高(02)
P1774 最接近神的人_NOI导刊2010提高(02) 关于此题为什么可以使用求逆序对的方法来做 假设一个数\(a_i\),且前\(i-1\)个数已经成为单调增的数列. 我们要从前\(a_1\)至\ ...
- 洛谷P1774 最接近神的人_NOI导刊2010提高(02)(求逆序对)
To 洛谷.1774 最接近神的人 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的 ...
- 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...
- 洛谷——P1774 最接近神的人_NOI导刊2010提高(02)
https://www.luogu.org/problem/show?pid=1774 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古 ...
- 【luogu P1774 最接近神的人_NOI导刊2010提高(02)】 题解
题目链接:https://www.luogu.org/problemnew/show/P1774 归并排序求逆序对. #include <cstdio> #define livelove ...
- luogu P1774 最接近神的人_NOI导刊2010提高(02)
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...
- luoguP1774 最接近神的人_NOI导刊2010提高(02)x
P1774 最接近神的人_NOI导刊2010提高(02) 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门 ...
- P1774 最接近神的人_NOI导刊2010[树状数组 逆序对 离散化]
题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...
随机推荐
- java集合: List、Set、Map总结 + HashMap/Hashtable 差别
List:(有序,能够反复)通过下标索引 ----ArrayList 可变数组,随机查找 ----LinkedList 链表,不论什么位置插入删除快 ----Vecto ...
- error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
[root@luozhonghua ~]# /usr/bin/mysqladmin -u root password 'aaaaaa' /usr/bin/mysqladmin: connect t ...
- _io.TextIOWrapper
''' SELECT * FROM Info_Roles WHERE Flag=1 LIMIT 2; select top y * from 表 where 主键 not in(select top ...
- oc83--自定义类实现copy方法
// // main.m // 自定义类实现copy #import <Foundation/Foundation.h> #import "Person.h" #imp ...
- SPOJ XMAX - XOR Maximization
XMAX - XOR Maximization Given a set of integers S = { a1, a2, a3, ... a|S| }, we define a function X ...
- ubuntu16.04更改源
最近用apt-get安装软件总是提示列表无法全部更新,导致一些软件安装不上,下面我们通过讲/etc/apt/sources.list里为阿里源,实现访问. 第一步: 备份/etc/apt/source ...
- Akka源码分析-Actor创建(续)
在上一遍博客中,我们已经分析了actor创建的大致过程,但只是涉及到了Dipatcher/Mailbox/ActorCell/InternalActorRef等对象的创建,并没有介绍我们自定义的继承A ...
- centos7离线安装rabbitmq
准备工作 一台centos7的机器 erlang-21.3.8.2 RabbitMQ 3.7.15 socat-1.7.3.2-2.el7.x86_64.rpm 开始安装 登录centos ,把上面的 ...
- Winform中Treeview控件失去焦点,将选择的节点设置为高亮显示 (2012-07-16 13:47:07)转载▼
Winform中Treeview控件失去焦点,将选择的节点设置为高亮显示 (2012-07-16 13:47:07)转载▼标签: winform treeview drawnode Treeview控 ...
- Leetcode0133--Clone Graph 克隆无向图
[转载请注明]:https://www.cnblogs.com/igoslly/p/9699791.html 一.题目 二.题目分析 给出一个无向图,其中保证每点之间均有连接,给出原图中的一个点 no ...