1562: 吓得我赶紧出了个签到题
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:36
解决:172
题目描述
这是一道很有意思的题目接下来将会有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.很简单,感谢出题人
二、填空题
看一眼代码,说出来结果,是一个学计算机同学的基本操作,下面学长给你们一串代码,代码输出的结果即为答案(结果不包含任何空格,请不要多写上空格)
学长相信你可以一眼看出代码输出的结果!!
答案需要你输出出来
第一行输出所有选择题答案(请按顺序输出,选项均为大写,之间不要有空格)
第二行输出填空题答案
一、选择题
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 <stdio.h>
#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;
}
输入
无
输出
两行,第一行四个选项(全为大写,无空格),第二行输出填空题答案
提示
(也许你可以运行一下这串代码