zoukankan      html  css  js  c++  java
  • CodeForces 863D Yet Another Array Queries Problem 暴力

    CodeForces 863D

    题意:长度为 n 的数组 a[] ,有两个操作: 1、区间 [l,r] 的数向右移,即 a[i+1] 变为 a[i],a[l] 变为 a[r] 。 2、反转区间 [l,r] 。 最后有 m 个询问 q,输出最后得到的数组里 a[q] 的值。

    tags: 一开始觉得是什么数据结构,发现 m <= 100,这样就直接暴力,对于每个询问从后往前反过来操作一遍。

    #include<bits/stdc++.h>
    using namespace std;
    #pragma comment(linker, "/STACK:102400000,102400000")
    #define rep(i,a,b) for (int i=a; i<=b; ++i)
    #define per(i,b,a) for (int i=b; i>=a; --i)
    #define mes(a,b)  memset(a,b,sizeof(a))
    #define INF 0x3f3f3f3f
    #define MP make_pair
    #define PB push_back
    #define fi  first
    #define se  second
    typedef long long ll;
    const int N = 200005;
    
    int n, q, m, a[N], t[N], l[N], r[N];
    int main()
    {
        scanf("%d%d%d", &n, &q, &m);
        rep(i,1,n) scanf("%d", &a[i]);
        rep(i,1,q) scanf("%d%d%d", &t[i], &l[i], &r[i]);
        int bi;
        rep(j,1,m)
        {
            scanf("%d", &bi);
            per(i,q,1)
            {
                if(l[i]<=bi && bi<=r[i])
                {
                    if(t[i]==1)
                    {
                        bi = (bi==l[i]) ? r[i] : bi-1;
                    }
                    else
                    {
                        bi = l[i]+(r[i]-bi);
                    }
                }
            }
            printf("%d ", a[bi]);
        }
    
        return 0;
    }
  • 相关阅读:
    3
    正确的消费理念和方式
    2
    1
    善待精力,保持体力,保持热情
    为什么不从今天开始呢?
    c++中的新成员
    函数重载分析下
    函数重载分析上
    函数参数的扩展
  • 原文地址:https://www.cnblogs.com/sbfhy/p/7656165.html
Copyright © 2011-2022 走看看