P3531-[POI2012]LIT-Letters【逆序对,树状数组】

正题

题目大意:https://www.luogu.org/problem/P3531


题目大意

两个由相同字符组成的字符串,每次可以交换相邻的两个字符,求最少交换次数使这两个字符串相同。


解题思路

我们拿第二个字符在第一个字符串对应的位置作为值求逆序对数量即可。

注意的是两个相同的使,前面的对前面,后面的对后面。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define lowbit(x) (x&-x)
#define ll long long
using namespace std;
const ll N=1e6+10;
ll n,local[27],last[N],num[N],t[N],ans;
char a[N],b[N];
void change(ll x,ll z)
{while(x<=n){t[x]+=z;x+=lowbit(x);}
}
ll ask(ll x)
{ll ans=0;while(x){ans+=t[x];x-=lowbit(x);}return ans;
}
int main()
{scanf("%lld",&n);scanf("%s",a+1);scanf("%s",b+1);for(ll i=1;i<=n;i++){last[i]=local[a[i]-'A'];local[a[i]-'A']=i;}for(ll i=n;i>=1;i--){num[i]=n-local[b[i]-'A']+1;local[b[i]-'A']=last[local[b[i]-'A']];}for(ll i=1;i<=n;i++){ans+=ask(num[i]);change(num[i],1);}printf("%lld",ans);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水题 矩阵快速幂

Description 函数 f:Z→Zf:Z→Z。已知 f(1)&#xff0c;f(2)f(1)&#xff0c;f(2) 的值&#xff0c;且对于任意 x>1x>1&#xff0c;有 f(x1)f(x)f(x−1)sin(πx2)f(x1)f(x)f(x−1)sin⁡(πx2)。 求 f(n)f(n) 的值。 Input 多组数据。&#xff08;数据组数 T≤100T≤100&a…

如何看待微软新开源的Service Fabric?

本人曾在Service Fabric (SF)项目中做了几年&#xff0c;这次很兴奋能看到它的开源。短短两天已经有1300多个关注了。我看了一下开源的代码&#xff0c;真是满满的干货&#xff0c;200多万行C代码&#xff0c;所有最核心的协议算法都在里面。但是&#xff0c;不得不承认&#x…

K8S Learning(7)—— Deployment

一、Deployment简介 在kubernetes中&#xff0c;Pod是最小的控制单元&#xff0c;但是kubernetes很少直接控制Pod&#xff0c;一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理&#xff0c;确保pod资源符合预期的状态&#xff0c;当pod的资源出现故障时&#xff0c;会尝…

P1477-[NOI2008]假面舞会【构图,dfs,gcd】

正题 题目链接:https://www.luogu.org/problem/P1477 题目大意 一张有向图&#xff0c;分为zzz类点&#xff0c;对于每条边要么是iii类连向i1i1i1类&#xff0c;要么是kkk类连向111类(k≥3k\geq 3k≥3)&#xff0c;求zzz的最小值和最大值(不给出kkk) 解题思路 首先不考虑环&…

公共子串 字符串哈希

You are given two long strings AA and BB. They are comprised of lowercase letters. You should compute how many suffixes of AA are the prefixes of BB. Input In the first line is a number TT (0<T≤1000<T≤100) , indicating the cases following.In the ne…

RabbitMQ教程C#版 “Hello World”

先决条件 本教程假定RabbitMQ已经安装&#xff0c;并运行在localhost标准端口&#xff08;5672&#xff09;。如果你使用不同的主机、端口或证书&#xff0c;则需要调整连接设置。从哪里获得帮助 如果您在阅读本教程时遇到困难&#xff0c;可以通过邮件列表联系我们。1.介绍Rab…

K8S Learning(8)—— Service

一、Service简介 利用Deployment来创建一组Pod来提供具有高可用性的服务&#xff0c;每个Pod都会分配一个单独的Pod IP&#xff0c;却存在以下两个问题&#xff1a; Pod IP 会随着Pod的重建产生变化 Pod IP 仅仅是集群内可见的虚拟IP&#xff0c;外部无法访问 对于访问这个服…

牛客小白月赛18-记录

正题 比赛链接:https://ac.nowcoder.com/acm/contest/1221 成绩 总结 好难&#xff0c;就拿了一些水题分 T1:Forsaken喜欢数论\texttt{T1:Forsaken喜欢数论}T1:Forsaken喜欢数论 题目大意 f(i)f(i)f(i)表示iii的最小质因子&#xff0c;求∑i2nf(i)\sum_{i2}^nf(i)∑i2n​f(i…

.NET Core开源API网关 – Ocelot中文文档

Ocelot是一个用.NET Core实现并且开源的API网关&#xff0c;它功能强大&#xff0c;包括了&#xff1a;路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成&#xff0c;下面我…

数学题 贪心+二分答案

Description 现在有两个数组 AA 和 BB&#xff0c; 分别包含 xx 与 yy 个元素。 定义一个新的数组 CC&#xff0c; CC 中包含 xyxy 个元素&#xff0c;为 AA 中所有元素除以 BB 中所有元素。 即 新集合为 &#xff5b;c∣cab&#xff0c;a∈A&#xff0c;b∈B&#xff5d;&…

K8S Learning(9)——Pod介绍

一、 Pod结构 每个Pod中都可以包含一个或者多个容器&#xff0c;这些容器分为两类&#xff1a; 用户程序所在的容器&#xff0c;数量没有限制 Pause容器&#xff0c;这是每个Pod都会有的一个根容器&#xff0c;它的作用有两个&#xff1a; 可以以它为依据&#xff0c;评估整个…

NOI.AC-序列【堆】

正题 题目链接:http://noi.ac/contest/266/problem/793 题目大意 给定mmm个函数fz(x)∑i0kaz,i∗xif_z(x)\sum_{i0}^ka_{z,i}*x^ifz​(x)∑i0k​az,i​∗xi&#xff0c;然后求这些函数的并集中第nnn大的数。 解题思路 我们显然可以得出fz(i)<fz(i1)f_z(i)<f_z(i1)fz​…

ABP前端使用阿里云angular2 UI框架NG-ZORRO分享

一、前言前段时间写博客分享和介绍了阿里云的UI框架NG-ZORRO&#xff08;博客请查看&#xff1a;http://www.cnblogs.com/donaldtdz/p/7892960.html&#xff09;&#xff0c;结合近段时间对.Net开源框架ABP的学习。完成将ABP前端框架替换成阿里云的NG-ZORRO。二、替换说明ABP版…

Prufer序列 生成树定理

Description 在图论中&#xff0c;树的定义是连通且无环的无向图。对于一棵有 nn 个节点且节点从 11 到 nn 编号的树&#xff0c;它的 Prufer 序列是一个唯一的长为 n−2n−2 的标号序列。 Prufer 序列的构造方法&#xff1a;每次删除树中标号最小的叶子节点&#xff08;即度为…

K8S Learning(10)——Pod配置

pod.spec.containers属性是pod配置中最为关键的一项配置。 kubectl explain pod.spec.containersKIND: Pod VERSION: v1 RESOURCE: containers <[]Object> # 数组&#xff0c;代表可以有多个容器 FIELDS:name <string> # 容器名称image <string>…

NOI.AC-积木【堆】

正题 题目链接:http://noi.ac/contest/266/problem/794 题目大意 无限多个1∗21*21∗2的砖块交替着 一个砖块会掉落仅当下方两个砖块都掉落&#xff0c;现在抽出nnn个砖块&#xff0c;求掉落多少个砖块。 解题思路 开一个优先队列&#xff0c;若两个连在一起的就把上面那个…

L3-002 堆栈 树状数组+二分答案

题目详情点击这里 思路&#xff1a;用std::stack来表示题目中说的栈&#xff0c;现在关键问题就是如何找到中位数。 可以用二分答案&#xff0b;树状数组的方法 由于每个元素最大不超过1e5&#xff0c;因此开一个大小为1e5的树状数组来存储不超过x的数有多少个 每次push一个…

K8S Learning(11)——Pod生命周期

一、Pod生命周期 一般将pod对象从创建至终的这段时间范围称为pod的生命周期&#xff0c;它主要包含下面的过程&#xff1a; pod创建过程 运行初始化容器&#xff08;init container&#xff09;过程 运行主容器&#xff08;main container&#xff09; 容器启动后钩子&#…

大规模开发团队如何实现DevOps转型? 来自微软全球开发平台工程团队的实践经验

微软全球开发平台工程团队从敏捷到DevOps的转型2013年11月13日&#xff0c;我们宣布了Visual Studio2013&#xff0c;以及微软研发云Visual Studio Online (VSO)的正式商用。紧接着我们经历了一次长达七小时的服务中断。我们的服务运行在一个“弹性扩展单元”中&#xff0c;为大…

NOI.AC-保镖【贪心,对顶堆】

正题 题目链接:http://noi.ac/contest/266/problem/795 题目大意 nnn个人第iii个巡逻一次aia_iai​秒&#xff0c;休息至少bib_ibi​秒。 要求 任意时刻都有人巡逻在一个人的两次相邻的巡逻直接不能有另一个人巡逻两次。 解题思路 对于性质二我们发现就是在nnn个人里选择最少…