• B. WeirdSort


    题意:

    有一个数组ai,和另一个数组pi,pi代表数组a中不同的位置,pi表示可以交换a[pi] 和 a[pi+1],任务是判断是否能够通过交换操作得到一个非下降序列。

    题解(2种):

    • 把pi排序遍历,满足条件时计数,当不满足条件时,把范围内的ai全部排序,最后判断是否符合条件。
    • 直接暴力,遍历pi是否存在不符合非递减,不符合则交换两数,最后判断通过操作是否符合要求。(冒泡排序)。

    ACcode:

    //这里是第一种解法
    int
    main() { ll t; cin >> t; while (t--) { int n, m; int a[110], b[110], vis[110]; memset(vis, 0, sizeof(vis)); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i];//a[i]一定要从1开始,这样才能和b[]对应; for (int i = 0; i < m; i++) { cin >> b[i]; vis[b[i]] = 1; } sort(b, b + m);//先对b数组排序 int num = 0; for (int i = 1; i <= n; i++) { if (vis[i] == 1) { num++; vis[i] = 0; }//如果i可以交换,就计数,留在之后交换 else if (num>0)
    { { sort(a
    + i - num, a + i+1); num = 0; }//当i不能进行交换时,把之前记录的都交换 } } int flag = 0; for (int i = 1; i < n; i++) { if (a[i] > a[i + 1]) { flag = 1; break; } }//判断是否符合条件 if (flag == 1) cout << "NO" << endl; else cout << "YES" << endl; } return 0; }
  • 相关阅读:
    Centos(Linux)安装openoffice教程
    IDEA快速创建一个简单的SpringBoot项目(需要联网)
    Maven配置使用阿里云镜像
    关于Spring MVC的问题
    FTP搭建YUM源服务器
    IP子网的划分
    交换分区swap
    sentos7忘记root密码,重置密码
    sentos中bonding(网卡绑定技术)1
    sentos7网卡改名
  • 原文地址:https://www.cnblogs.com/Uiney117/p/14823656.html
Copyright © 2020-2023  润新知