ACM刷题之路(九)数论-逆序组 交换座位

简介: ACM刷题之路(九)数论-逆序组 交换座位

C 交换座位


时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte

总提交:185            测试通过:61

描述

学号分别为1,2,3,4,5,6,7,8的8位同学随机排成一排,现在想把他们按学号从小到大排序,在排序的时候每次只能其中的2位同学进行换位,请问最少需要几次这样的换位。

输入

输入有多组数据(组数至少20000),每组输入一个含有12345678的字符串。

输出

输出最少所需的交换次数。

样例输入

12345678

12365478

12345786

样例输出

0

1

2


分析:

由于数字只有8个数,所以可以暴力解决。

根据观察:

如果两个数需要对调,那么交换的次数为1;

如果三个数需要对调,那么交换的次数为2;

如果四个数需要对调,那么交换的次数为3;

...

观察可以得出:如果n个数需要对调,那么交换的次数为n-1;

所以我们只要通过搜索找出8个数字中有多少个“小组”。

比如12365487:有1、2、3、654、87 五大组,组员分别为1、1、1、3、2个人  所以交换次数等于0、0、0、2、1;

加起来就是三次。


AC代码如下:

1. #include<stdio.h>
2. #include<string.h>
3. #include<iostream>
4. using namespace std;
5. 
6. char a[9];
7. bool b[9];
8. int geshu;
9. void dfs(int x){
10.     b[x] = true;
11.     geshu++;
12. if (b[a[x] - '0'] == false)
13. dfs(a[x] - '0');
14. }
15. 
16. int main(){
17. while (gets(a + 1)){
18. int sum = 0, i, sum2 = 0;
19. memset(b, false, sizeof(b));
20. for (i = 1; i <= 8; i++){
21.             geshu = 0;
22. if (b[i] == false){
23.                 geshu = 0;
24. dfs(i);
25.             }
26. if (geshu > 1){
27.                 sum += geshu - 1;
28.             }
29.         }
30.         cout << sum << endl;
31.     }
32. return 0;
33. }
34.

 


相关文章
|
机器学习/深度学习 C语言
【C/PTA】选择结构专项练习
【C/PTA】选择结构专项练习
423 0
|
4月前
|
人工智能 安全 API
HarmonyOS5云服务技术分享--登录邮件功能整理
本文详细解析了HarmonyOS认证服务中基于ArkTS API 12的邮箱登录全流程,涵盖注册、密码登录、验证码登录、敏感操作处理及密码重置等功能。通过清晰的代码示例与注意事项说明,帮助开发者快速实现安全可靠的邮箱认证流程,同时提供账号关联、风控策略等扩展建议,助力优化用户体验。适合初学者与进阶开发者参考实践。
|
机器学习/深度学习 TensorFlow 算法框架/工具
全面解析TensorFlow Lite:从模型转换到Android应用集成,教你如何在移动设备上轻松部署轻量级机器学习模型,实现高效本地推理
【8月更文挑战第31天】本文通过技术综述介绍了如何使用TensorFlow Lite将机器学习模型部署至移动设备。从创建、训练模型开始,详细演示了模型向TensorFlow Lite格式的转换过程,并指导如何在Android应用中集成该模型以实现预测功能,突显了TensorFlow Lite在资源受限环境中的优势及灵活性。
1250 0
|
Python 容器
星际争霸之小霸王之小蜜蜂(六)--让子弹飞
星际争霸之小霸王之小蜜蜂(六)--让子弹飞
|
存储 消息中间件 NoSQL
数据库常识课
数据库常识课
131 0
|
Cloud Native 开发者
《云原生时代下的App开发》电子版地址下载
2021年12月,阿里云携10+技术专家亮相年度顶级云原生开源技术峰会 ,并带来阿里云云原生专场,不仅汇聚行业发展方向的精彩主题演讲,在云基础设施、可观察性等云原生与开源技术等各大专题中,从阿里云真实业务场景中 走出来的云原生技术最佳实践也向全球开发者一一呈现。
142 0
《云原生时代下的App开发》电子版地址下载
|
机器学习/深度学习 数据可视化 Python
多元线性回归的模型解释、假设检验、特征选择(一)
多元线性回归的模型解释、假设检验、特征选择(一)
371 0
多元线性回归的模型解释、假设检验、特征选择(一)
|
自然语言处理 运维 监控
阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
作为阿里云Cloud AIoT Native架构的基础平台,近日,阿里云企业物联网平台正式推出了IoT 云端一体应用——千里传音播报服务。该应用是阿里云AIoT针对带有语音播报能力的AIoT设备,提供的云端一体的解决方案,为播报提醒类设备应用提供从播报语料合成,语料管理,语料推送到设备,播报设备管理等完善功能,配合集成了端侧播报能力的HaaS设备,帮助用户高效完成播报类设备的开发和长期运行。
493 2
阿里云企业物联网平台推出千里传音播报服务 高效打造云端一体智能硬件
|
传感器 编解码 知识图谱
Google Earth Engine ——MYD17A2H/A3H/GF V6总初级生产力(GPP)产品是一个具有500米分辨率的8天/16天累积综合数据。
Google Earth Engine ——MYD17A2H/A3H/GF V6总初级生产力(GPP)产品是一个具有500米分辨率的8天/16天累积综合数据。
300 0
Google Earth Engine ——MYD17A2H/A3H/GF V6总初级生产力(GPP)产品是一个具有500米分辨率的8天/16天累积综合数据。
|
SQL 存储 缓存
CDP中的Hive3系列之管理Hive3
在了解了CDP中提供的Hive的特性及如何使用Hive3,本章节将就如何管理Hive3提供说明。
1525 0
CDP中的Hive3系列之管理Hive3