#P8788. [蓝桥杯 2022 国 A] 填空问题

[蓝桥杯 2022 国 A] 填空问题

题目描述

试题 A :小蓝与钥匙

【问题描述】

小蓝是幼儿园的老师,他的班上有 2828 个孩子,今天他和孩子们一起进行了一个游戏。

小蓝所在的学校是寄宿制学校,28 个孩子分别有一个自己的房间,每个房间对应一把钥匙,每把钥匙只能打开自己的门。现在小蓝让这 2828 个孩子分别将自己宿舍的钥匙上交,再把这 2828 把钥匙随机打乱分给每个孩子一把钥匙,有 28!=28×27××128 !=28 \times 27 \times \cdots \times 1 种分配方案。小蓝想知道这些方案中,有多少种方案恰有一半的孩子被分到自己房间的钥匙(即有 1414 个孩子分到的是自己房间的钥匙,有 1414 个孩子分到的不是自己房间的钥匙)。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

试题 B:排列距离

【问题描述】

小蓝最近迷上了全排列,现在他有一个长度为 1717 的排列,里面包含的元素有:abcdefghijklnopqr,即 a 至 rr 中除了 m\mathrm{m} 以外的所有小写字母,这 1717 个字母在任何一个排列中都恰好出现一次。前面几个排列依次是:

11 个排列为:abcdefghijklnopqr;

22 个排列为:abcdefghijklnoprq;

33 个排列为:abcdefghijklnoqpr;

44 个排列为:abcdefghijklnoqrp;

55 个排列为:abcdefghijklnorpq;

66 个排列为:abcdefghijklnorqp;

77 个排列为:abcdefghijklnpogr;

88 个排列为:abcdefghijklnporq;

99 个排列为:abcdefghijklnpqor;

1010 个排列为:abcdefghijklnpqro。

对于一个排列,有两种转移操作:

1)转移到其下一个排列。如果当前排列已经是最后一个排列,那么下一个排列就是第一个排列。

2)转移到其上一个排列。如果当前排列是第一个排列,那么上一个排列就是最后一个排列。

小蓝现在有两个排列,分别为排列 A:A: aejcldbhpiogfqnkr,以及排列 B:B: ncfjboqiealh krpgd,他现在想知道,在只有上述两种转移操作的前提下,排列 AA 最少转移多少次能得到排列 BB

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输入格式

输入格式输入一个大写字母,表示第几个问题。

输出格式

根据所输入的问题编号,输出对应问题的答案。

提示

答题模板,可供参考。

#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;
}