一
塔
Description
你在最后那场博弈中败下阵来,却意外穿越到了海拉尔大陆!是你吗林克?
初来到海拉尔大陆的你,有些许的局促,但当你看到塔,或许一切的一切都迎刃而解。
一个层高为n的字母塔的定义为:
共n行,由字母组成的等腰三角形。
塔顶为第一层,且只有一个大写字母A;下面每一层都比上面一层多两个字母。
每一层都是左右对称。
对于第i层,前i个字母由大写字母表中A~第i个字母顺序组成。
为了稳住局面,样例给出了层高为5的字母塔,请你输出层高2626的字母塔。
Input
TIPS:此题是一道程序填空题,下面会给出此题正确代码的挖空版本,选手可以根据提示对代码进行完善。
Output
输出高度为 2626 的塔。
Sample Input 1
TIPS:此题是一道程序填空题,下面会给出此题正确代码的挖空版本,选手可以根据提示对代码进行完善。
下面给出层高为5的塔的样例输出
Sample Output 1
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
Hint
TIPS:此题是一道程序填空题,在下方代码编辑框中给出了各种语言代码正确代码的挖空版本,选手可以根据提示对代码进行完善。
注意:切换提交代码语言后提交模板没有变化,需要点击language右侧圆圈按钮刷新
#include <stdio.h>
/***********************************
观察题目样例给出的高为5层的塔,可以得出以下几个规律
对于一个高为n层的塔而言,首先设最上面一层(顶层)为第一层。
- 对于第i层而言,其字符的排列规律为:大写字母表中从第1个字符(A)第i个字符,后又倒序从第i-1个字符第1个字符(A)。
- 第1~n-1层每层前都有空格,具体而言,对于第i行,字符前面的空格个数为n-i个。
找出以上规律后,我们就可以根据这些规律构造出答案:层高26的塔。
TIPS:
大写字母’A’为大写字母表第一个字符
对于大写字母表中第i个字符,可以使用’A’+i-1得到。
例如:第5个字符为’E’,亦即为:‘A’+5-1
***********************************/
int main() {
char c1;
int n = 26; //设定塔的层数为26
int i, j;
for (i = 1; i <= n; i++) { //对塔每一层按照规律进行构造。
//首先进行输出空格的操作:对于第i行,字符前面的空格个数为n-i个。
for (j = 1; j <= ①:第i层需要输出的空格个数; j++)
printf(" “);
for (j = 1; j <= i; j++) { //按照规律1,输出第1~第i个大写字母。
c1 = j + ‘A’ - 1; //第j个大写字母为’A’+j-1
printf(”%c", c1); //输出第j个大写字母
}
for (j = ②:从第i-1个大写字母倒序输出,此处填j的起始位置; j >= 1; j–) {//按照规律1,输出第i-1~第1个大写字母,注意是倒序
c1 = ③:c1的值为第j个大写字母;
printf("%c", c1);
}
printf("\n");//第i行输出结束,进行换行。
}
return 0;
}
二
日记
Description
看着林林色色的塔,你的心里有些许的安稳,在询问路人时你得知了,你正身处「卡卡利科村」,似乎帕雅也在那里?
好久没有偷窥帕雅的日记了
你喜欢偷窥帕雅日记一事已广为人知,帕雅特地在日记本上加了密。
加密的方式很简单:对于一串字符串,如果其中有l,i,n,k,e这五个字母当中的任意一个,帕雅都会在这后面加上bt再加上原来的字母已加密,如love就会加密成lbtlovebte。
下面给出帕雅日记的第一页内容,请你根据他的日记内容进行解密。
ibti lbtlovebte lbtlibtinbtnkbtkebtezbas jebte dosadnbtna ovakbtkebtemibtijaxaszxdbtddbtddbtddbtddbtddbtd
注意上面内容为一行内容,没有任何换行,若网页显示多行只是文本显示宽度问题。
建议查看PDF。
但这能拦得住你吗?时间紧迫,快解密吧!
Input
这是一道提交答案题,没有任何输入,只需要将问题的解使用输出语句输出即可。
Output
输出帕雅日记第一页解密后的内容。
Sample Input 1
这是一道提交答案题,没有任何输入,只需要将问题的解使用输出语句输出即可。
Sample Output 1
输出帕雅日记第一页解密后的内容。
三
哥布林
Description
你成功偷窥到了帕雅的日记,但哥布林的入侵口号让你来不及感伤这位小女生的情愫!
成堆成山的哥布林已经做好出征前的准备,特殊的,这次出征时,每只哥布林出征前都要拿一把武器。
武器库给这些哥布林们配有 MM 把各不相同的武器,编号为 1-M1−M,目前,前 NN 只哥布林已经选好了武器,他们分别选的武器编号是 a_1,a_2,…,a_Na
1
,a
2
,…,a
N
,恰好,之后将有 M-NM−N 只哥布林来拿武器。
这 M-NM−N 只哥布林取武器的方式有些许特殊:
对于每只哥布林,都会在「未被取用的」武器区间中去找「最长的」一个连续的武器区间,如果「最长的」的武器区间有不止一个,则取用最左边的一个。
出于隐私,哥布林将取用这个连续区间上最中间的一个武器。如果区间段为偶数,则取用中间靠左的武器。
可以肯定的是,每个武器都会被哥布林「不重复地」取用。
为了更好的应对哥布林的入侵,你想知道其中 TT 名哥布林选用的武器编号。
这 TT 名哥布林的编号为 b_1,b_2,…,b_Tb
1
,b
2
,…,b
T
为了更快捷的做好出征准备,哥布林们总是有序的。
即 a,ba,b 皆为单调递增的数组。
奥,对了!哥布林人数非常非常非常非常多!1\leq M\leq10^{14},1\leq N,T\leq10^51≤M≤10
14
,1≤N,T≤10
5
Input
第一行输入三个整数 M,N,TM,N,T,含义如题面描述。
第二行包括 NN 个整数,每个整数之间用空格分隔开,表示 a_ia
i
第三行包括 TT 个整数,每个整数之间用空格分隔开,表示 b_ib
i
1\leq a_i,b_i\leq M1≤a
i
,b
i
≤M
Output
每行一个整数,分别表示这 TT 只哥布林对应的武器编号。
Sample Input 1
7 1 4
4
2 3 4 5
Sample Output 1
2
6
1
3
Sample Input 2
10 2 4
2 8
1 3 5 8
Sample Output 2
2
5
6
4
四
质数区间
Description
您是一个神犇。
有一个有序的无限大集合,集合内元素是素数。每一个集合内的元素按升序排序。集合顺序优先按「集合元素和」排序,其次按「集合字典序」排序。您需要给出给定区间 [l,r][l,r] 的内容。
该集合的一部分为
[2], [3], [2, 3], [5], [2, 5], [7], [3, 5], [2, 7], [2, 3, 5], [3, 7], [11], [2, 3, 7], [5, 7], [2, 11], [13], [2, 5, 7],
(1\leq l\leq r\leq 1e18,r-l\leq 100000)(1≤l≤r≤1e18,r−l≤100000)
Input
两个整数 l,rl,r,表示给定的区间。
Output
这个区间 [l,r][l,r] 的内容。
包括[、]、、,
Sample Input 1
1 6
Sample Output 1
[2], [
Sample Input 2
25 30
Sample Output 2
2, 5],
五
神仙爱采药
Description
您是一个神仙,但您很喜欢采药。
您有一个神奇的背包,背包内有VV个格子。
您所在的空间内有一些药,每个药会占用 11 或 22 个格子。
每天可以进行一次如下操作:
采摘一个药材放入背包中,若此时背包中没有多余的格子来放入新的药材,可以先将背包中的若干药材扔出去,至于扔多少以及扔几个,全都由您决定。当然您也可以选择不去进行采摘操作。
每一天结束前,神奇背包中的每个药材都会产生一个药丸。
作为神仙,您知道每天您可以采摘的药材类型(即占用格子数目),注意,当天的药材如果不采摘,在第二天就会消失(当天药材仅限当天采摘)。
为了获得尽可能多的药丸,请您计算最终能获得的药丸数目最多是多少?
Input
给定一个整数 VV 表示背包的格子数量,接下来一行一个由1或2构成的字符串 ss 表示药占用体积的情况。
其中1表示该药占用体积为 11,2表示该药占用体积为 22。
|s|∣s∣表示天数
V\leq100000,|s|\leq 100000V≤100000,∣s∣≤100000
Output
最多的药丸数目。
Sample Input 1
3
212
Sample Output 1
5
Sample Input 2
5
12112
Sample Output 2
14
Sample Input 3
6
112212
Sample Output 3
18
Sample Input 4
3
21121
Sample Output 4
10
Hint
对于第四组样例:
第一天装入了体积为2的药,该天生产药丸数为1。
第二天装入了体积为1的药,该天生产药丸数为2。
第三天取出了体积为2的药,装入了体积为1的药,该天生产药丸数为2。
第四天未操作,生产药丸数为2。
第五天装入体积为1的药,该天生产药丸数为3
故 1+2+2+2+3=10 个
六
但更爱字符串
Description
您是一个神仙,您尤其喜欢字符串。
定义一个好词是第一个字母大写,其他字母均小写,且长度大于 11 的单词,例如Akworldfinal、Orzorz、Orz、Nb。
好串是由好词构成的,两个好词之间有且只有一个空格,且一个好串至少有两个好词。如:International Collegiate Programming Contest。
现在您有一篇文章,想让您将其中的好串进行适当的缩写。如:International Collegiate Programming Contest改写为ICPC (International Collegiate Programming Contest)。
注意:好串一定是尽可能长的。如International Collegiate Programming Contest能且仅能被唯一地缩写成ICPC (International Collegiate Programming Contest)。
Input
输入一篇文章,文章是由字母、标点、空格回车构成的。
(每行不超过 128128 个字符,总共不会超过 10001000 行)
Output
进行改写过后的文章。
Sample Input 1
No mind to think, No Will To Break, No voick to cry suffering,Born Of God And Void.
Sample Output 1
No mind to think, NWTB (No Will To Break), No voick to cry suffering,BOGAV (Born Of God And Void).
Sample Input 2
You shall seal the blinding light that plagues their dreams.You Are The Vessel, You Are THe Hollow Knight.!
Sample Output 2
You shall seal the blinding light that plagues their dreams.YATV (You Are The Vessel), YA (You Are) THe HK (Hollow Knight).!
Sample Input 3
In wilds beyond they speak your NamE With Reverence And Regret,
For none could tame our Savage Souls yet you the challenge met,
Under, Palest. Watch, You Taught , you changed. Base instincts were redeemed,
A World You gave to bug and beast as they had never dreamed.
Sample Output 3
In wilds beyond they speak your NamE WRAR (With Reverence And Regret),
For none could tame our SS (Savage Souls) yet you the challenge met,
Under, Palest. Watch, YT (You Taught) , you changed. Base instincts were redeemed,
A WY (World You) gave to bug and beast as they had never dreamed.
七
猫腥草争夺大战
Description
小c和小w是两只猫,他们都喜欢猫腥草!
小c和小w都在一棵有 nn 个节点的树上,节点编号为 1,2,3,…,n1,2,3,…,n 。
在一号节点有一个猫腥草,他们开始了一场有趣的抢夺。
两只猫都是优雅的猫,所以他们的抢夺按以下方式重复进行:
1、小c选择一个节点并「占有」它。
2、小w「占有」猫腥草所在的节点
3、小w再将猫腥草移至一个「未被占有过」且与「当前节点」相邻的节点。
当小w无法再移动猫腥草时,抢夺结束。聪明的小c想知道,是否存在一种策略,使得无论小w如何作妖,都可以在 tt 轮结束游戏。(即小w移动猫腥草的次数小于 tt )
究竟存不存在这种操作策略呢?
奥对,因为猫猫小c的近视程度太深了,他不知道某时刻「猫腥草」所在的位置,当然这不影响他在树上行走。
Input
输入仅一行,共两个整数 n,tn,t
接下来 n-1n−1 行,每行两个整数 u,vu,v ,表示编号为 u,vu,v 的节点间有一条边。
Output
如果存在该操作策略,则输出C!。反之输出W!
1\leq t\leq n\leq4001≤t≤n≤400 , 1\leq u,v\leq n1≤u,v≤n
Sample Input 1
6 2
1 3
3 2
2 5
1 4
4 6
Sample Output 1
C!
Sample Input 2
3 1
1 3
1 2
Sample Output 2
W!
Sample Input 3
11 3
1 2
1 4
2 3
2 6
4 5
4 10
5 7
6 8
6 9
7 11
Sample Output 3
C!
八
无限山河印的故事
Description
小c和小w是好朋友,他们喜欢玩游戏。
小c将小w放到一个无限大的山河印中了,该山河印是由一个 n*mn∗m 的山河子印复制填充而来。
例如下面的山河子印:
\begin{aligned}&adpc\&akwf\end{aligned}
adpc
akwf
向右向下复制后产生的山河印为:
\begin{aligned}…&adpcadpcadpcadpcadpcadpcadpcadpc…\…&akwfakwfakwfakwfakwfakwfakwf…\…&adpcadpcadpcadpcadpcadpcadpcadpc…\…&akwfakwfakwfakwfakwfakwfakwf…\end{aligned}
…
…
…
…
adpcadpcadpcadpcadpcadpcadpcadpc…
akwfakwfakwfakwfakwfakwfakwf…
adpcadpcadpcadpcadpcadpcadpcadpc…
akwfakwfakwfakwfakwfakwfakwf…
小w可以任选一个起点,但他只能朝八个方向中任意一个方向前进,小c让小w前进 ss 步,我们可以得到一个长度为 |s|∣s∣ 的字符串。
小w有一个女朋友小l,小l也被扔到了山河印中,小l也可以任选一个起点,任选一个方向,小c也让小l前进 ss 步,我们也可以得到一个长度为 |s|∣s∣ 的字符串。
现在小c想要检验小w和他女朋友小l的默契程度,他想问问你,这两个人有多大的概率得到相同的字符串。
Input
第一行三个整数 n,m,sn,m,s
接下来 nn 行 mm 列,表示山河子印。
n,m\leq500,s\leq10^9n,m≤500,s≤10
9
Output
两个字符串相同的概率,用p/q表示,其中gcd(p,q)==1。
Sample Input 1
4 4 9
dadd
caca
llxa
ssca
Sample Output 1
39/2048
Sample Input 2
1 2 2
ac
Sample Output 2
5/16
九
奇怪的传输机增加了
Description
小c和小w是好朋友,他们都喜欢Coding!
题目描述
小c闲来无事,计划学习编程,但是却无法安装Dev-cpp,小w毕业设计刚好是一个量子传输机。
已知Dev-cpp安装包的大小为 NN KB,使用量子传输给终端需要 yy 天才能传输完毕。
最初这个大小为NN KB的安装包完整存放在传输机中。
但是量子传输机不够稳定,传输时会有严重的数据损失,每天只能保留前一天\frac{2}{3}
3
2
的数据,即设第i天剩余的数据量为 n_in
i
,则n_i=\frac23 n_{i-1}n
i
3
2
n
i−1
,注意,当i=1i=1时,n_1=\frac23 Nn
1
3
2
N。
小w设计了一个恢复功能,如果传输第xx 天则可以恢复 \frac N2
2
N
的数据。注意此处的NN为最初完整安装包大小。
(在第 xx 天传输之后,即数据损失之后,在判断失败之前,仅能恢复一次。恢复指在现有数据量之上增加\frac N2
2
N
)
如果在yy天的传输中,存在某一天ii,其数据量 n_in
i
小于 \frac{N}{32}
32
N
时则认定为传输失败,最后一天也不可以无视传输失败这一判断。
小w想知道能否传输成功,传输成功的话最后传输机剩余了多少的数据量?
Input
输入仅一行,共三个整数 N,x,yN,x,y
Output
如果传输成功则输出YE5!,并输出传输的数据大小。
如果传输失败到则输出N0!,并输出一个整数表示在第几天失败,失败的时候仍有多少数据。
输出保留六位小数。
实际测试范围:
50000 \leq N\leq 20000050000≤N≤200000 ,1\leq x\leq 91≤x≤9 ,1\leq y \leq 181≤y≤18
Sample Input 1
70000 20 140
Sample Output 1
N0!
9 1820.860641
Sample Input 2
70000 8 14
Sample Output 2
YE5!
3312.486449
Hint
出题人原话:请选手们按题面要求复制粘贴输出,看清楚是YE5。
十
奇怪的小鸭子也增加了
Description
这题是个签到题。
有一个 A\times BA×B 的大澡盆,还有若干个 a\times ba×b 的长方形小鸭子,澡盆里最少放几只鸭子后,便无法再向其中放入更多的鸭子?
鸭子很倔强,不能旋转成 b\times ab×a ,也不能重叠放置。
Input
四个整数,分别表示 A,B,a,bA,B,a,b
1<=a<=A<=300001<=a<=A<=30000
1<=b<=B<=300001<=b<=B<=30000
Output
最少能放几只鸭子。
Sample Input 1
12 10 4 5
Sample Output 1
2
Sample Input 2
20 10 9 2
Sample Output 2
3
Hint
奇怪的小鸭子也增加了
Description
这题是个签到题。
有一个 A\times BA×B 的大澡盆,还有若干个 a\times ba×b 的长方形小鸭子,澡盆里最少放几只鸭子后,便无法再向其中放入更多的鸭子?
鸭子很倔强,不能旋转成 b\times ab×a ,也不能重叠放置。
Input
四个整数,分别表示 A,B,a,bA,B,a,b
1<=a<=A<=300001<=a<=A<=30000
1<=b<=B<=300001<=b<=B<=30000
Output
最少能放几只鸭子。
Sample Input 1
12 10 4 5
Sample Output 1
2
Sample Input 2
20 10 9 2
Sample Output 2
3
Hint
十一
关于哥俩好的数字这件事
Description
这题是个签到题。
数字 x,yx,y 是个「哥俩好」数字,当且仅当数字 xx 的数位和与数字 yy 的数位和相同。
你需要找 nn 个不同的正整数,使得这 nn 个数字两两之间均为「哥俩好」数字且总和最小。
Input
一个整数 nn , 1\leq n\leq50001≤n≤5000
Output
最小的「哥俩好」数字总和。
Sample Input 1
5
Sample Output 1
110
Sample Input 2
2
Sample Output 2
11
Hint
对于样例2,我们可以选择1+10,故输出11
十二
我们仍未知道那窝蛋的名字
Description
在一个养鸡场里,有 nn 个小窝,鸡会在这个窝里下蛋。养鸡场老板每天都会审查一段鸡窝情况,他想要看哪个窝的蛋最多。
养鸡场在持续经营,所以陆陆续续会有新鸡进窝。
进窝操作按以下格式进行:
1 T N s r,分别表示进窝时间 TT ,进编号 NN 的窝,每天下蛋的个数 ss ,自己带的蛋的个数 rr
审查操作按以下格式进行:
2 T x y,分别表示第 TT 天审查,审查的窝范围是 [ x,y ][x,y] ,包含端点。TIPS:在数据中xx可能大于yy
审查时视作鸡已经下了当天的蛋。
蛋一定是整数,但鸡可能会比较笨拙,每天都破坏蛋,所以每天下蛋数和自己带的蛋的个数可能为负。
可能会出现多只鸡进一个窝的情况,但一窝不容二鸡,所谓后来者居上是也。
在新鸡进窝之前,可以看做每个窝没有鸡蛋。老鸡跑了,老鸡欠的/多的蛋还是不变的哦~
Input
第一行输入两个整数 n,tn,t 表示有 nn 个窝,tt 次事件。
接下来 tt 行,每行给定一个事件
1 T N s r或2 T x y,每天至多发生一个事件,且事件顺序已按时间先后排序。
T\leq106,|s|,|r|\leq106,1\leq n\leq100000,1\leq t\leq300000T≤10
6
,∣s∣,∣r∣≤10
6
,1≤n≤100000,1≤t≤300000
Output
每次审查时输出一个数值,表示「有鸡的窝中」最多的蛋的个数,如果窝里没鸡则输出baigei
Sample Input 1
3 5
1 1 2 1 3
1 3 1 2 3
2 4 1 2
2 6 1 3
2 9 1 3
Sample Output 1
6
9
15
Sample Input 2
4 6
1 1 2 3 -2
1 2 3 3 7
2 3 3 1
2 4 3 1
1 5 4 -5 18
2 6 3 4
Sample Output 2
10
13
19
Sample Input 3
6 9
1 2 5 8 -10
2 3 3 5
1 4 4 12 18
2 5 1 2
1 7 2 4 6
2 9 2 1
1 10 4 0 34
2 11 5 5
2 12 1 4
Sample Output 3
-2
baigei
14
62
34
十三
出题人说这道题是一个签到题
Description
比赛前一天,出题人接到了一个电话…
我们都知道2020-2021年度第二届全国大学生算法设计与编程挑战赛(冬季赛)是由中国未来研究会大数据与数学模型专业委员会举办的面向全国高校大学生的学科竞赛,旨在激发学生学习计算机领域专业知识与技能的兴趣,鼓励学生主动灵活地运用计算机知识和技能解决实际问题,有效提升算法设计、逻辑推理、数学建模、编程实现和计算机系统能力,培养团队合作意识、挑战精神和创新能力。
主办单位:全国大学生算法设计与编程挑战赛组委会、中国未来研究会大数据与数学模型专业委员会。
现在,出题人想测试一下你的编程能力!
出题人有一个人工智能的项目要做,大概是问答相关。但因为明天就要检验了,今天只来得及「新建文件夹」啦。
快帮帮他!他要做一个自动回复的脚本,功能如下:
如果输入的值是1,则回复ADPC。
否则的话,输出12345。
你需要帮助出题人完成这个自动回复的脚本。
Input
输入一个整数 NN,NN只会是 {1,2,3,4,5}1,2,3,4,5中的一个。
Output
ADPC或12345。
Sample Input 1
1
Sample Output 1
ADPC
Sample Input 2
4
Sample Output 2
12345
我做了第一题和最后一题,其他……