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)的更多相关文章

  1. 洛谷P1774 最接近神的人_NOI导刊2010提高(02) [2017年6月计划 线段树03]

    P1774 最接近神的人_NOI导刊2010提高(02) 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门 ...

  2. P1774 最接近神的人_NOI导刊2010提高(02)

    P1774 最接近神的人_NOI导刊2010提高(02) 关于此题为什么可以使用求逆序对的方法来做 假设一个数\(a_i\),且前\(i-1\)个数已经成为单调增的数列. 我们要从前\(a_1\)至\ ...

  3. 洛谷P1774 最接近神的人_NOI导刊2010提高(02)(求逆序对)

    To 洛谷.1774 最接近神的人 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的 ...

  4. 洛谷 P1774 最接近神的人_NOI导刊2010提高(02)

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...

  5. 洛谷——P1774 最接近神的人_NOI导刊2010提高(02)

    https://www.luogu.org/problem/show?pid=1774 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古 ...

  6. 【luogu P1774 最接近神的人_NOI导刊2010提高(02)】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1774 归并排序求逆序对. #include <cstdio> #define livelove ...

  7. luogu P1774 最接近神的人_NOI导刊2010提高(02)

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...

  8. luoguP1774 最接近神的人_NOI导刊2010提高(02)x

    P1774 最接近神的人_NOI导刊2010提高(02) 题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门 ...

  9. P1774 最接近神的人_NOI导刊2010[树状数组 逆序对 离散化]

    题目描述 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案.而石门上方用古代文写着“神的殿堂”.小FF猜想里面应该就有王室的 ...

随机推荐

  1. react State改变,页面却没有改变

    react 小白编程 做项目时遇到了个问题,无论我怎么查看我的action.reducer 还是 dispatch 函数,都没有发现有什么毛病.但是 debugger 的时候,state 改变了,页面 ...

  2. ES6 一些常用使用

    //1.解构数组 let arr1 = ['apple', 'coffee', 'cake']; let [fruit, drink, dessert] = arr1; console.log(fru ...

  3. hdoj-1214-圆桌会议【逆序数】

    圆桌会议 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...

  4. git 命令 —— checkout

    git checkout 会重写工作区.check in 常常表示酒店入住,则 check out 就表示结账(检查)离开. 1. 基本用法 Git学习笔记04–git checkout git ch ...

  5. Black Rock Shooter

    在人气动漫 Black Rock shooter 中,当加贺里对麻陶 说出了"滚回去"以后,与此同时,在另一个心灵世界里, BRS 也遭到了敌人的攻击.此时,一共有 n 个攻击排成 ...

  6. Vue使用html2canvas将页面转化为图片

    需求是微信端将页面截屏之后保存到本地,使用了html2canvas插件 先引入插件 npm install --save html2canvas 之后在你所需要使用的页面引入 import html2 ...

  7. idea git项目修改后无法提交 颜色都是灰色

    现象: idea git项目修改后无法提交   修改后的文件提交时不显示  颜色都是灰色 分析问题出现的原因: git未识别idea下项目. 排查: 发现是因为这个项目之前是基于svn的,然后直接导入 ...

  8. Codeforces Round 411 Div.2 题解

    A Fake NP standard input/output s, MB Submit Add to favourites x3673 B -palindrome standard input/ou ...

  9. js-消息对话框

    最近在某技术网站学习一些js(JavaScript)的课程,将笔记分享一下 消息对话框1. **alert **消息对话框,输出内容,可以是字符串或变量,与document.write 相似   va ...

  10. JS——client

    clientTop.clientLeft: clientTop:盒子的上boder clientLeft:盒子的左border clientWidth与clientHeight 1.在有DTD情况下: ...