• B. Permutation Chain


    Problem - B - Codeforces

    B. 排列链
    每次测试的时间限制 2 秒
    每个测试的内存限制256 MB
    输入标准输入
    输出标准输出
    长度为 n 的排列是从 1 到 n 的整数序列,使得每个整数在其中恰好出现一次。

    令排列 p 的固定性为其中不动点的数量——使得 pj=j 的位置 j 的数量,其中 pj 是排列​​ p 的第 j 个元素。

    你被要求构建一系列排列 a1,a2,...,从恒等排列开始(排列 a1=[1,2,...,n])。我们称其为排列链。因此,ai 是长度为 n 的第 i 个排列。

    对于从 2 开始的每个 i,排列 ai 应该通过交换其中的任意两个元素(不一定是相邻的)从排列 ai-1 中获得。排列 ai 的固定性应严格低于排列 ai-1 的固定性。//从上一个排列中

    考虑 n=3 的一些链:

    a1=[1,2,3], a2=[1,3,2] - 这是一个长度为 2 的有效链。从 a1 到 a2,位置 2 和 3 上的元素交换,固定性从 3 减少到1.
    a1=[2,1,3], a2=[3,1,2] — 这不是一个有效的链。对于 n=3,第一个排列应始终为 [1,2,3]。
    a1=[1,2,3], a2=[1,3,2], a3=[1,2,3] — 这不是一个有效的链。从 a2 到 a3,位置 2 和 3 上的元素被交换,但固定性从 1 增加到 3。
    a1=[1,2,3], a2=[3,2,1], a3=[3,1,2] — 这是一个长度为 3 的有效链。从 a1 到 a2,位置 1 和3 交换,固定性从 3 减少到 1。从 a2 到 a3,位置 2 和 3 的元素交换,固定性从 1 减少到 0。
    找到最长的排列链。如果有多个最长的答案,打印其中任何一个。

    输入
    第一行包含一个整数 t (1≤t≤99)——测试用例的数量。

    每个测试用例的唯一一行包含一个整数 n (2≤n≤100)——链中所需的排列长度。

    输出
    对于每个测试用例,首先,打印排列链 k 的长度。

    然后打印 k 个排列 a1,a2,…,ak。 a1 应该是长度为 n ([1,2,…,n]) 的恒等排列。对于从 2 到 k 的每个 i,应该通过交换 ai-1 中的两个元素来获得 ai。它还应该具有比 ai-1 严格更低的固定性。

    例子
    输入复制
    2
    2
    3
    输出复制
    2
    1 2
    2 1
    3
    1 2 3
    3 2 1
    3 1 2

    1. #include
    2. #include
    3. using namespace std;
    4. int n,t;
    5. int a[110];
    6. int main()
    7. {
    8. cin>>t;
    9. while(t--)
    10. {
    11. cin>>n;
    12. int m=n;
    13. cout<
    14. for(int i=0;i
    15. {
    16. a[i]=i+1;
    17. cout<' ';
    18. }
    19. cout<
    20. int i=-1;
    21. while (m -- )
    22. {
    23. i++;
    24. if(i==n-1)break;
    25. swap(a[i],a[i+1]);
    26. for(int j=0;j
    27. cout<" ";
    28. cout<
    29. }
    30. }
    31. }

    可以改进一点,润了。。

  • 相关阅读:
    解决安卓中 ARouter There is no route match the path in group问题
    css自学框架之消息弹框
    艾美捷山羊抗人IgG-AP化学性质&曲线展示
    基于 QEMUv8 搭建 OP-TEE 开发环境
    C# 集合(四) —— Set类
    Spring中@Valid和@Validated有哪些不同呢?
    深度学习 TensorFlow入门
    详解Spring Boot中@value的使用方式
    docker版jxTMS使用指南:数据采集系统的高可用性
    20个Golang最佳实践
  • 原文地址:https://blog.csdn.net/qq_62079079/article/details/126172573