题目描述
回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。

交换的定义是:交换两个相邻的字符

例如mamad

第一次交换 ad : mamda

第二次交换 md : madma

第三次交换 ma : madam (回文!完美!)

输入
第一行是一个整数N,表示接下来的字符串的长度(N < = 8000)

第二行是一个字符串,长度为N.只包含小写字母
输出
如果可能,输出最少的交换次数。

否则输出Impossible
样例输入

5
mamad

样例输出

3

解题思路:
https://blog.csdn.net/weixin_43487219/article/details/84801672
代码如下:

#include <iostream>
#include <cstring>
using namespace std;int main() {int n;int step = 0;bool flag = false;cin >> n;string s;cin >> s;int N = n - 1;for (int i = 0; i < N; i++)for (int j = N; j >= i; j--) {if (i == j) {if (n % 2 == 0 || flag == true) {cout << "Impossible" << endl;return 0;}flag = true;step+=n/2-i;} else if (s[i] == s[j]) {for (int k = j; k < N; k++) {swap(s[k], s[k + 1]);step++;}N--;break;}}cout << step << endl;return 0;
}

[蓝桥杯][基础练习VIP]完美的代价-贪心相关推荐

  1. [蓝桥杯][基础练习VIP]完美的代价(贪心)

    题目描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的.小龙龙认为回文串才是完美的.现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串. 交换的定义是 ...

  2. 蓝桥杯 基础练习VIP FJ的字符串 java

    蓝桥杯 基础练习VIP FJ的字符串 java 题目 题目描述 FJ在沙盘上写了这样一些字符串: A1 = "A" A2 = "ABA" A3 = " ...

  3. [蓝桥杯][基础练习VIP]Huffuman树

    题目描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Huffman树的过程如下: 找到 ...

  4. 问题 1462: [蓝桥杯][基础练习VIP]Huffuman树

    题目描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0,  p1,  -,  pn-1},用这列数构造Huffman树的过程如下: ...

  5. [蓝桥杯][基础练习VIP]分解质因数

    题目描述 求出区间[a,b]中所有整数的质因数分解. 提示 先筛出所有素数,然后再分解. 数据规模和约定 2< =a< =b< =10000 输入 输入两个整数a,b. 输出 每行输 ...

  6. [蓝桥杯][基础练习VIP]2n皇后问题(深搜)

    输出一个整数,表示总共有多少种放法. 样例输入 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 样例输出 2 思路:数据量不大,就是暴力搜索,先安排一种皇后,然后再安排另一种皇后. ...

  7. [蓝桥杯][基础练习VIP]报时助手

    题目描述 给定当前的时间,请用英文的读法将它读出来. 时间用时h和分m表示,在英文的读法中,读一个时间的方法是: 如果m为0,则将时读出来,然后加上"o'clock",如3:00读 ...

  8. [蓝桥杯][基础练习VIP]分解质因数-质数筛选+模拟+双指针

    题目描述 求出区间[a,b]中所有整数的质因数分解. 提示 先筛出所有素数,然后再分解. 数据规模和约定 输入 输入两个整数a,b. 2< =a< =b< =10000 输出 每行输 ...

  9. [蓝桥杯][基础练习VIP]芯片测试-思维

    题目描述 有n块芯片,有好有坏,已知好芯片比坏芯片多. 每个芯片都能用来测试其他芯片.用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏.而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即 ...

最新文章

  1. 植树节,程序员要爬哪些“树”?
  2. 方法革新:8个宏基因组分析新工具 | 热心肠日报
  3. 白话Elasticsearch31-深入聚合数据分析之bucket与metric
  4. RunTime.getRunTime().addShutdownHook的用法
  5. 在Mac的Docker中运行DotNetCore2.0
  6. Java 字符串与整数之间的互相转换
  7. keyProperty=“id“ 和useGeneratedKeys=“true“作用
  8. CodeForces 706A Beru-taxi
  9. Audio播放流程(一)---MediaPlayer流程
  10. 线性判别分析LDA解析2
  11. 9款最新炫酷HTML5/CSS3应用推荐
  12. 哈工大2019年春算法设计与分析期末复习
  13. 【分布式版本控制系统】GIT 托管网站 客户端
  14. sin cos 信号相加计算
  15. linux查看系统所有变量,Linux系统各指标命令
  16. Swagger 文档中文版,国产API 文档工具使用教程
  17. 发布java包运行提示找不到配置文件
  18. 学习安装java运行环境
  19. 【服务器raid数据恢复】RAID5两块盘离线的数据恢复案例
  20. java基于springboot校园视频监控管理系统

热门文章

  1. 【测绘程序设计】坐标正算神器V1.0(附C/C#/VB源程序)
  2. Matlab图形绘制
  3. Android之提示A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
  4. php基础教程 第八步循环补充
  5. 震惊!原来现在无所不能的世界主人翁,早已在三千年前就悄然出现!
  6. 为什么离开学校后,学习能力直线下降?
  7. 明天放假,我放价!一个国庆假期教你学会数学建模
  8. 小米8ios图标包下载_小米互传PC端抢先下载,免流量、高速互传,支持多设备共享...
  9. python 逆向生成正则表达式_用Python中的正则表达式生成lis
  10. c语言不通类型指针转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...