当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

5063:Operation the Sequence

题目描述
You have an array consisting of n integers: $a_1=1, a_2=2, a_3=3, \ldots, a_n=n$. Then give you m operators, you should process all the operators in order. Each operator is one of four types:
Type1: O 1 call fun1();
Type2: O 2 call fun2();
Type3: O 3 call fun3();
Type4: Q i query current value of a[i], this operator will have at most 50.
Global Variables: a[1…n],b[1…n];
fun1() {
index=1;
  for(i=1; i<=n; i +=2)
    b[index++]=a[i];
  for(i=2; i<=n; i +=2)
    b[index++]=a[i];
  for(i=1; i<=n; ++i)
    a[i]=b[i];
}
fun2() {
  L = 1;R = n;
  while(L<R) {
    Swap(a[L], a[R]);
    ++L;--R;
  }
}
fun3() {
  for(i=1; i<=n; ++i)
    a[i]=a[i]*a[i];
}
输入解释
The first line in the input file is an integer $T(1 \leq T \leq 20)$, indicating the number of test cases.
The first line of each test case contains two integer $n(0<n \leq 100000)$, $m(0<m \leq 100000)$.
Then m lines follow, each line represent an operator above.
输出解释
For each test case, output the query values, the values may be so large, you just output the values mod 1000000007(1e9+7).
输入样例
1
3 5
O 1
O 2
Q 1
O 3
Q 1
输出样例
2
4
来自杭电HDUOJ的附加信息
Recommend heyang

该题目是Virtual Judge题目,来自 杭电HDUOJ

题目来源 BestCoder Round #13

源链接: HDU-5063

最后修改于 2020-10-25T23:19:23+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
3000/1500MS(Java/Others) 32768/32768K(Java/Others)