树状数组求逆序对-洛谷P3531 [POI2012]LIT-Letters
来源:互联网 发布:mac 拷贝照片到u盘 编辑:程序博客网 时间:2024/05/17 02:11
https://daniu.luogu.org/problem/show?pid=3531
我们把A串标个号;
然后在B串里按A串的标号求一下逆序对就好了;
对于重复的字母;
A串里直接靠前的标号小
B串也一样;
这样显然正确;
#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#define Ll long longusing namespace std;struct cs{ Ll nxt;}a[1000005];Ll f[1000005];Ll head[100],ll,now[100];Ll n,ans,k,kk;char c;Ll out(Ll k){ Ll ans=0; for(Ll i=k;i>=1;i-=i&-i)ans+=f[i]; return ans;}Ll add(Ll k){ for(Ll i=k;i<=n;i+=i&-i)f[i]++;}int main(){ ios::sync_with_stdio(false); cin>>n; for(Ll i=1;i<=n;i++){ cin>>c; k=c; if(now[k]==0)head[k]=i;else a[now[k]].nxt=i; now[k]=i; } for(Ll i=1;i<=n;i++){ cin>>c; kk=c; k=head[kk]; head[kk]=a[head[kk]].nxt; k=n-k+1; ans+=out(k); add(k); } cout<<ans;}
1 0
- 树状数组求逆序对-洛谷P3531 [POI2012]LIT-Letters
- [BZOJ2789][Poi2012]Letters(树状数组求逆序对)
- bzoj 2789: [Poi2012]Letters 树状数组求逆序对
- bzoj 2789 [Poi2012]Letters 求逆序对
- 【BZOJ】【P2789】【Poi2012】【Letters】【题解】【逆序对】
- BZOJ 2789 Poi2012 Letters 树状数组
- bzoj 2789 [Poi2012]Letters 树状数组
- 【BZOJ2789】【树状数组】[Poi2012]Letters 题解
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- 树状数组求逆序对
- Java IO 字符流例子
- 启动Genymotion虚拟机后开启adb命令报错的问题
- Redis集群
- fiddler使用方法
- 0xFFFFF
- 树状数组求逆序对-洛谷P3531 [POI2012]LIT-Letters
- java.util.concurrent中Phaser的分析
- Struts2--动态Action的三种实现方法
- windows-linux互传文件便捷操作
- Caffe训练和测试自己的数据集
- 微服务
- <感受5>
- linux Python升级导致Yum无法使用
- Spring架构及设计理念