蓝桥杯2018年真题-交换次数
迪丽瓦拉
2024-06-03 23:45:36
0

知识点:无穷大的定义0x3f3f3f3f

0x3f3f3f3f是什么意思???

为什么无穷大总是0x3f3f3f3f而不是0x7fffffff?

题目:

IT产业人才需求节节攀升。业内巨头百度、阿里巴巴、腾讯(简称BAT)在某海滩进行招聘活动。

招聘部门一字排开。由于是自由抢占席位,三大公司的席位随机交错在一起,形如:

ABABTATT,这使得应聘者十分别扭。

于是,管理部门要求招聘方进行必要的交换位置,使得每个集团的席位都挨在一起。即最后形如:

BBAAATTT 这样的形状,当然,也可能是:

AAABBTTT 等。

现在,假设每次只能交换2个席位,并且知道现在的席位分布,

你的任务是计算:要使每个集团的招聘席位都挨在一起需要至少进行多少次交换动作。

输入:

输入是一行n个字符(只含有字母B、A或T),表示现在的席位分布。

n<=104

输出:

输出是一个整数,表示至少交换次数。

思路:

暴力:6种排列方式

宏观可分为3个区A\B\C

交换次数=A区非A个数+B区C的个数+B区A的个数-min(A区B的个数,B区A的个数)

然后比较6种排列中,交换次数最小的是几次

代码:

#include
#include
#include
using namespace std;
string str;
int mn = 0x3f3f3f3f;//定义一个无穷大
char t[6][4] = { "ABT", "ATB", "BAT","BTA","TAB","TBA"};
int changes(char A, char B, char C) {int a=0, b=0, c=0,num=0,numb=0,numa=0,numc=0;for (int i = 0; i < str.length(); i++) {if (str[i] == A)a++;else if (str[i] == B)b++;else if (str[i] == C)c++;}for (int i = 0; i < a; i++) {if (str[i] != A)num++;if (str[i] == B)numb++;}for (int i = a; i < a + b; i++) {if (str[i] == A)numa++;if (str[i] == C)numc++;}num += numa + numc - min(numa,numb);return num;
}int main() {cin >> str;for (int i = 0; i < 6; i++) {mn = min(mn, changes(t[i][0], t[i][1], t[i][2]));}cout << mn << endl;return 0;
}

相关内容

热门资讯

【看表情包学Linux】进程地...   🤣 爆笑教程 👉 《看表情包学Linux》👈 猛...
实验01:吃鸡蛋问题 1.实验目的: 通过实验理解算法的概念、算法的表示、算法的时间复杂度和空间复杂度分析&...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
AI数字人软件系统开发流程 随着AI技术的成熟,极大的简化了人机交互,可以让更多的人参与到企业服务的...
蓝桥杯2018年真题-交换次数 知识点:无穷大的定义0x3f3f3f3f0x3f3f3f3f是什么意思?...
NVMf RPC接口文件 nv... NVMf RPC接口文件 nvmf_rpc.c在spdk的lib/nvmf/下的NVMf RPC接口...
java集合类|Map讲解附加... 目录 1.Map集合 创建 基本的map使用方法 添加数据,打印数据  获取长度&#x...
JVM笔记(二)HotSpot... HotSpot虚拟机对象探秘对象的创建当Java虚拟机遇到一条字节码new指令时,首先...
k8s学习-CKS真题-网络策... 目录题目环境搭建解题参考 题目 Task 创建一个名为 pod-restriction 的 Ne...
春日旅游路线 1.西安站1.1 景点1)day01 兵马俑华清宫早上,交通有直通车&#...
C++ Primer第五版_第... 文章目录题目概览1.1 编译器文档1.2 错误标识1.3 Hello, World1.4 两数相乘1...
浏览器事件循环 事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间࿰...
MTK Android串口权限... 问题 Android11设备中添加串口应用,遇到打开串口时报错问题: S...
【经典】股票问题 一个方法团灭 6 道股票问题 这类问题的「状态」有三个,第一个是天数,第二个是允许交易的最大次数,第...
MySQL实战解析底层---普... 目录 前言 查询过程 更新过程 change buffer 的使用场景 索引选择和实践 change...
MacBookPro M2芯片... MacBookPro M2芯片下如何搭建React-Native环境目录软件下载环境配置 目录 写在...
ATTCK红队评估实战靶场(二... 前言 第二个靶机来喽,地址:vulunstack 环境配置 大喊一声我...
u盘突然无法识别怎么办?试试这...   u盘突然无法识别怎么办?重要文件多了,一般我都会使用u盘存起来,这样...
ARM linux kerne... 10年前老文章搬家这两天想在s3c2443上写写驱动程序,就拿了kernel 2.6....
mysql设置忽略表名大小写 在连接数据库的时候发现库里有表的名字只是大小写不一样,但就是连不上,我用...