2018/09/13 rope

2018牛客网暑期多校训练(第三场)C

#include 
#include 
using namespace std;

int main()
{
    int n, k;
    __gnu_cxx::rope T;
    scanf("%d %d", &n, &k);
    for(int i = 1; i <= n; i++) T.push_back(i);
    while(k--)
    {
        int s, m;
        scanf("%d %d", &s, &m);
        s --;
        T = T.substr(s, m) + T.substr(0, s) + T.substr(s + m, n - s - m);
    }
    printf("%d", T[0]);
    for(int i = 1; i < n; i++) printf(" %d", T[i]);
    return 0;
}

rope

rope R;

R.push_back(x);//在末尾添加新元素x

R.insert(i,x);//在i位置插入x

R.erase(i,x);//从i位置开始删除x个

R.copy(i,len,x);//从i开始到i+len为止用x代替

R.replace(i,x);//将第i个元素替换成x

R.substr(i,x);//取出从i开始的x个元素

R.at(x); 
R[x];
//访问第x个元素

rope下标从0开始

你可能感兴趣的:(2018/09/13 rope)