#P8788. [蓝桥杯 2022 国 A] 填空问题
[蓝桥杯 2022 国 A] 填空问题
题目描述
试题 A :小蓝与钥匙
【问题描述】
小蓝是幼儿园的老师,他的班上有 个孩子,今天他和孩子们一起进行了一个游戏。
小蓝所在的学校是寄宿制学校,28 个孩子分别有一个自己的房间,每个房间对应一把钥匙,每把钥匙只能打开自己的门。现在小蓝让这 个孩子分别将自己宿舍的钥匙上交,再把这 把钥匙随机打乱分给每个孩子一把钥匙,有 种分配方案。小蓝想知道这些方案中,有多少种方案恰有一半的孩子被分到自己房间的钥匙(即有 个孩子分到的是自己房间的钥匙,有 个孩子分到的不是自己房间的钥匙)。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题 B:排列距离
【问题描述】
小蓝最近迷上了全排列,现在他有一个长度为 的排列,里面包含的元素有:abcdefghijklnopqr,即 a 至 中除了 以外的所有小写字母,这 个字母在任何一个排列中都恰好出现一次。前面几个排列依次是:
第 个排列为:abcdefghijklnopqr;
第 个排列为:abcdefghijklnoprq;
第 个排列为:abcdefghijklnoqpr;
第 个排列为:abcdefghijklnoqrp;
第 个排列为:abcdefghijklnorpq;
第 个排列为:abcdefghijklnorqp;
第 个排列为:abcdefghijklnpogr;
第 个排列为:abcdefghijklnporq;
第 个排列为:abcdefghijklnpqor;
第 个排列为:abcdefghijklnpqro。
对于一个排列,有两种转移操作:
1)转移到其下一个排列。如果当前排列已经是最后一个排列,那么下一个排列就是第一个排列。
2)转移到其上一个排列。如果当前排列是第一个排列,那么上一个排列就是最后一个排列。
小蓝现在有两个排列,分别为排列 aejcldbhpiogfqnkr,以及排列 ncfjboqiealh krpgd,他现在想知道,在只有上述两种转移操作的前提下,排列 最少转移多少次能得到排列 。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
输入格式
输入格式输入一个大写字母,表示第几个问题。
输出格式
根据所输入的问题编号,输出对应问题的答案。
提示
答题模板,可供参考。
#include<iostream>
using namespace std;
int main() {
string ans [] = {
"The answer of task A", // 双引号中替换为 A 题的答案
"The answer of task B", // 双引号中替换为 B 题的答案
};
char T;
cin >> T;
cout << ans[T - 'A'] << endl;
return 0;
}