当前位置: 首页 > news >正文

#贪心,树状数组#洛谷 5041 [HAOI2009] 求回文串

题目

给定字符串,问最少多少次交换相邻字母能变成回文串。


分析

贪心,对每个字母计算首个和最后一个移到端点的次数,可以用树状数组维护,

可以发现每次选取移动次数最少的字母就是最优的,可以通过两个字母位置间的分类讨论证明

那么选完字母之后用双端队列把字母对应的开头结尾位置删除即可。


代码

#include <iostream>
#include <string>
#include <deque>
using namespace std;
const int N=1000011; deque<int>q[26];
int n,odd,c[N]; long long Ans; string str;
void del(int x){for (;x<=n;x+=-x&x) --c[x];}
int query(int x){int ans=0; for (;x;x-=-x&x) ans+=c[x]; return ans;}
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>str,n=str.length();for (int i=0;i<n;++i) q[str[i]-'A'].push_back(i+1),c[i+1]=-(i+1)&(i+1);for (int i=0;i<26;++i) if (q[i].size()&1) ++odd;if (odd>(n&1)){cout<<-1;return 0;}for (int i=1;i<=n/2;++i){int pos=-1,ans=0x3f3f3f3f;for (int j=0;j<26;++j)if (q[j].size()>1){int now=query(q[j].front()-1)+(n-i*2)-query(q[j].back());if (ans>now) ans=now,pos=j;}del(q[pos].front()),del(q[pos].back()),Ans+=ans;q[pos].pop_front(),q[pos].pop_back();}cout<<Ans;return 0;
}
http://www.jsqmd.com/news/366685/

相关文章:

  • 2026 北京英语雅思培训教育机构推荐|雅思培训课程中心权威口碑榜单 - 苏木2025
  • 有没有ASP.NET示例代码展示大文件的目录结构断点续传?
  • 2026 保定英语雅思培训教育机构推荐:雅思培训课程中心权威口碑榜单 - 苏木2025
  • 深耕蓉城家装十余载 成都里林设计以专业与匠心打造全维度家装服务体系 - 推荐官
  • 萤石开放平台 音视频 | 取流协议说明
  • 2026 佛山英语雅思培训教育机构推荐,雅思培训课程中心权威口碑榜单 - 苏木2025
  • 【Python全栈开发】第2讲 | 数据结构全实战、流程控制与 Pythonic 迭代艺术
  • 2026 兰州英语雅思培训教育机构推荐,雅思培训课程中心权威口碑榜单 - 苏木2025
  • 警惕“内存泄漏”:为什么90%的人把“核心-卫星”配成了情绪提款机?
  • 2026 兰州英语雅思培训教育机构推荐、雅思培训课程中心权威口碑榜单 - 苏木2025
  • 2026 北京英语雅思培训教育机构推荐;雅思培训课程中心权威口碑榜单 - 苏木2025
  • 军工领域中ASP.NET大文件上传组件如何保证断点续传的安全性?
  • 成都攀成钢板块深度分析
  • ‌脚本质量门禁:CodeBERT在自动化代码坏味道检测的规则引擎‌
  • 【Python零基础到精通】特别篇 | 浪漫至死不渝:用代码打造 3D 交互深空爱心实验室
  • 2026 北京英语雅思培训教育机构推荐、雅思培训课程中心权威口碑榜单 - 苏木2025
  • 别让老板等:千人并发下的实时大屏极致性能优化实录
  • 交叉编译(一)
  • 如何在.NET WebForm中实现网页端大文件的分片断点续传?
  • 当代码门禁遇上大模型,测试效率的革命性跃迁
  • 综述不会写?AI论文软件 千笔写作工具 VS WPS AI,本科生专属神器!
  • 2026年地坪生产厂家最新推荐排行榜:聚焦国内优质厂商,助力选购高性价比金刚砂/环氧/混凝土/球场用地坪 - 深度智识库
  • DiffPure技术机制与测试工具链整合方案
  • 新手也能上手 9个一键生成论文工具测评:自考毕业论文+格式规范全攻略
  • 2026年主流GEO服务商深度评测:技术代差之下,企业如何选择? - 品牌策略主理人
  • 2026 南宁英语雅思培训教育机构推荐、雅思培训课程中心权威口碑榜单 - 苏木2025
  • 双引擎驱动:测试资产复用的技术革命与落地实践
  • 进阶篇:从手写深拷贝到 std::string 与移动语义(Rule of Five)
  • ‌协议安全审计:NLP解析SSL/TLS握手漏洞的自动化扫描器‌
  • 贵州工业地坪解决方案指南 固化剂/环氧/金刚砂地坪优选 贵州惠博特专属定制 - 深度智识库