在做不出来就要吃鞭子烧肉了(;´д`)ゞ
1 个赞
114514
题目呢
1 个赞
这是哪的题
1 个赞
id都给你了
有一个长为n的数列,共有m次操作。每次操作会翻转一个区间l到r。问最终序列?
输入格式:
第一行一个整数n,表示序列中的元素个数。
第二行n个整数,表示原序列。
第三行一个整数m,表示翻转次数。
接下来m行每行两个整数l,r。
输出格式:
一行n个整数,表示最终序列。
样例输入:
3 1 2 3 1 1 2
样例输出:
2 1 3
约定:
所有数不超过1000
提示:
C++11
评测规则
加载最近代码
Selection deleted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
⌄
⌄
⌄
#include<bits/stdc++.h>
using namespace std;
int a[1005];
int main()
{
int n,m,l,r;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cin>>m;
while(m–)cin>>l>>r;
while(l<r)
{
swap(a[l],a[r]);
l++;
r–;
}
for(int i=0;i<n;i++)cout<<a[i]<<" ";
}
自测样例
最新编译结果
提交代码
难点在于翻转都知道,新建立一个数组,储存翻转得数
核心代码(是人都知道dddd):
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
int b[10001];
int xb=0;
for(int j=y;j>=x;j--){
xb++;
b[xb]=a[j];
}
xb=0;
for(int j=x;j<=y;j++){
xb++;
a[j]=b[xb];
}
}
1 个赞
我试试(希望不要逝世)
3Q()
我做出来了 可是不能发代码 所以骚瑞了
1 个赞