zoukankan      html  css  js  c++  java
  • hdu 5821 (贪心排序) Ball

    题目:这里

    题意:T组数据,两个长度都为n的数组,有m次操作,操作是对a数组而言,每次操作给一个区间范围l,r,可以将这个区间内的数任意交换顺序,问经过m次操作后,

    是否可以将a数组变为b数组。

    输入a数组的时候不仅记录数本身,还要记录其在b数组中的位置,然后每次操作的时候将这个区间内的数按其记录的位置的从小到大的顺序排列,如果m次后能够

    得到b,就行了,不能就No.

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 const int M = 1e3 + 10;
     8 struct point{
     9     int x,y;
    10 }a[M];
    11 int b[M];
    12 
    13 bool cmp(point a,point b)
    14 {
    15     return a.y<b.y;
    16 }
    17 
    18 int main()
    19 {
    20     int t,n,m;
    21     scanf("%d",&t);
    22     while (t--){
    23         scanf("%d%d",&n,&m);
    24         for (int i=1 ; i<=n ; i++){
    25             scanf("%d",&a[i].x);
    26             a[i].y=-1;
    27         }
    28         for (int i=1 ; i<=n ; i++){
    29             scanf("%d",&b[i]);
    30             for (int j=1 ; j<=n ; j++){
    31                 if (b[i]==a[j].x&&a[j].y==-1){
    32                     a[j].y=i;
    33                     break;
    34                 }
    35             }
    36         }
    37         while (m--){
    38             int l,r;
    39             scanf("%d%d",&l,&r);
    40             sort(a+l,a+r+1,cmp);
    41         }
    42         bool flag=false;
    43         for (int i=1 ; i<=n ; i++)
    44             if (b[i]!=a[i].x){flag=true;break;}
    45         if (flag) puts("No");
    46         else puts("Yes");
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    Antelope 和Barracuda区别
    MySQL监控工具-orztop
    MySQL监控工具-orzdba
    CentOS7 下 Hadoop 单节点(伪分布式)部署
    MyBatis-获取 xxxMapper(源码)
    MyBatis-获取 SqlSession(源码)
    Java-获取 JDK 动态代理生成的 Class 文件
    MyBatis-SqlSessionFactory 的创建(源码)
    JAVA-Enum 枚举
    JAVA-Proxy 代理
  • 原文地址:https://www.cnblogs.com/JJCHEHEDA/p/5762384.html
Copyright © 2011-2022 走看看