1562: 吓得我赶紧出了个签到题

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:20 解决:164

题目描述

这是一道很有意思的题目接下来将会有4道选择题和一道填空题
答案需要你输出出来


第一行输出所有选择题答案(请按顺序输出,选项均为大写,之间不要有空格)
第二行输出填空题答案


一、选择题

1.ACM的全称是什么()
A.Association for Computing Machinery
B.Air Chief Marshal
C.Authorised Controlled Material
D.Association of Crane Makers


2.ACM区域赛中,金奖为有效队伍数的前百分之()
A.3%
B.5%
C.10%
D.15%


3.下面选项中,最帅的人是谁()
A.同学α
B.同学β
C.同学γ
D.lcl

4.这场周赛简不简单()
A.很简单,感谢出题人


二、填空题
看一眼代码,说出来结果,是一个学计算机同学的基本操作,下面学长给你们一串代码,代码输出的结果即为答案(结果不包含任何空格,请不要多写上空格)
学长相信你可以一眼看出代码输出的结果!!

#include  #define ll long long #define N 100000 int sz[N], rev[N], tag[N], sum[N], ch[N][2], fa[N], val[N]; int nana[]={0,39,69,-9,9,8,-3,-5,-75,7}; char edge[N]; int n, m, rt, x; void push_up(int x){ sz[x] = sz[ch[x][0]] + sz[ch[x][1]] + 1; sum[x] = sum[ch[x][1]] + sum[ch[x][0]] + val[x]; } void swap(int *p,int *q){ int temp; temp=*p; *p=*q; *q=temp; } void push_down(int x){ if(rev[x]){ swap(&ch[x][0], &ch[x][1]); if(ch[x][1]) rev[ch[x][1]] ^= 1; if(ch[x][0]) rev[ch[x][0]] ^= 1; rev[x] = 0; } if(tag[x]){ if(ch[x][1]) tag[ch[x][1]] += tag[x], sum[ch[x][1]] += tag[x]; if(ch[x][0]) tag[ch[x][0]] += tag[x], sum[ch[x][0]] += tag[x]; tag[x] = 0; } } void rotate(int x, int k){ int y = fa[x], z = fa[fa[x]]; int kind = ch[y][1] == x; if(y == k) k = x; else ch[z][ch[z][1]==y] = x; fa[x] = z; fa[y] = x; fa[ch[x][!kind]] = y; ch[y][kind] = ch[x][!kind]; ch[x][!kind] = y; push_up(y); push_up(x); } void splay(int x, int k){ while(x != k){ int y = fa[x], z = fa[fa[x]]; if(y != k){ if(((ch[y][1] == x)&&!(ch[z][1] == y))||((ch[z][1] == y)&&!(ch[y][1] == x))) rotate(x, k); else rotate(y, k); } rotate(x, k); } } int kth(int x, int k){ push_down(x); int r = sz[ch[x][0]]+1; if(k == r) return x; if(k < r) return kth(ch[x][0], k); else return kth(ch[x][1], k-r); } void split(int l, int r){ int x = kth(rt, l), y = kth(rt, r+2); splay(x, rt); splay(y, ch[rt][1]); } void rever(int l, int r){ rev[ch[ch[rt][1]][0]] ^= 1; } void add(int l, int r, int v){ tag[ch[ch[rt][1]][0]] += v; val[ch[ch[rt][1]][0]] += v; push_up(ch[ch[rt][1]][0]); } int build(int l, int r, int f){ if(l > r) return 0; if(l == r){ fa[l] = f; sz[l] = 1; return l; } int mid = l + r >> 1; ch[mid][0] = build(l, mid-1, mid); ch[mid][1] = build(mid+1, r, mid); fa[mid] = f; push_up(mid); return mid; } int asksum(int l, int r){ return sum[ch[ch[rt][1]][0]]; } int main(){ rt = build(1, 8+2, 0); for(int i = 1; i <= 8; i++){ add(i, i, nana[i]); rever(1, 8); if(i>=2) edge[i-1]=(char)asksum(1, 8); } for(int i=1;i<=nana[9];i++) printf("%c",edge[i]); return 0; }




输入

输出

两行,第一行四个选项(全为大写,无空格),第二行输出填空题答案

提示

(也许你可以运行一下这串代码

来源/分类

Baidu
map