zoukankan      html  css  js  c++  java
  • 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; }
  • 相关阅读:
    js程序设计01——基本概念
    beego中orm关联查询使用解析
    使用bower管理前端依赖
    使用bee自动生成api文档
    app开发之deviceone
    使用socket.io开发简单群聊功能
    spring-boot配置热更新
    golang的xml、json解析
    golang学习之rpc实例
    golang学习之mgo操作mongodb
  • 原文地址:https://www.cnblogs.com/Uiney117/p/14823656.html
Copyright © 2011-2022 走看看