首页 > 代码库 > 【HDOJ】5063 Operation the Sequence
【HDOJ】5063 Operation the Sequence
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 5 #define MAXN 100005 6 #define MOD 1000000007 7 int que[MAXN], front = 0, rear = 0; 8 int n; 9 10 void query(int index) {11 int r = rear;12 int square = 0;13 int half = (n+1)>>1;14 15 while (r-- > front) {16 if (que[r] == 3) {17 ++square;18 } else if (que[r] == 2) {19 index = n+1-index;20 } else {21 if (index > half) {22 index = (index - half)*2;23 } else {24 index = 2*index - 1;25 }26 }27 }28 __int64 ret = index%MOD;29 for (int i=0; i<square; ++i) {30 ret = ret*ret%MOD;31 }32 printf("%I64d\n", ret);33 }34 35 int main() {36 int t, m;37 int x;38 char cmd[3];39 40 scanf("%d", &t);41 while (t--) {42 rear = 0;43 scanf("%d%d", &n, &m);44 while (m--) {45 scanf("%s %d", cmd, &x);46 if (cmd[0] == ‘Q‘) {47 query(x);48 } else {49 que[rear++] = x;50 }51 }52 }53 return 0;54 }
【HDOJ】5063 Operation the Sequence
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。