1. 删数游戏:
题目描述
两名同学在黑板上做删数游戏,游戏规则如下:
两名同学先一起在黑板上写了n个数字,同学A先擦掉一个数字,之后同学B再擦掉一个数字,轮流进行,直到黑板上只剩下最后一个数字;同学A希望最终留在黑板上的数字尽可能小,而同学B则希望最终留在黑板上的数字尽可能大。请问当两人都采取最优策略进行游戏时,黑板上剩下的数字是多少?
输入格式
第一行,一个数字T表示多组数据。
- 接下来T组数据,每组数据分两行输入:
第一行,一个正整数n表示n个数字;
第二行,n个正整数1,2,...,a1,a2,...,an。
输出格式
输出共T行,每行一个数字表示一组数据的结果。
输入输出样例
输入 #1
2
3
2 1 3
3
2 2 2
输出 #1
2
2
说明/提示
样例解释:
对于第一组数据,同学A先擦掉数字33,同学B再擦掉数字11,剩余一个数22游戏结束。
数据范围:
对于20%的数据,保证n≤3.
对于50%的数据,保证n≤10^3.
对于80%的数据,保证n≤10^4.
对于100%的数据,保证T≤10,n≤10^5.
2.阶乘密码:
题目描述
woshiluo最近疯狂迷恋上了密码学,他发现对于一些特定的数字n,其阶乘!=1⋅2⋅3⋅...⋅n!=1⋅2⋅3⋅...⋅n的末尾0的数量是一定的。
于是woshiluo想出了一个绝妙的信息加密方式(虽然可能没有什么用),就是将所有的阶乘末尾0个数为k的数字从小到大排列,将这些数字对应的变为数字k。
例如5,6,7,8,95,6,7,8,9这五个数字的阶乘末尾都恰好有11个数字00,那么我们就可以将子串5678956789加密为数字11。
现在我们给出加密之后的数字k,请你将该数字对应的原数字串完整的输出出来。如果答案不存在,请输出-1。
输入格式
第一行,一个正整数T,表示多组数据。
之后T行,每行一个整数n,表示加密之后的数字n。
输出格式
输出共�T行,每行对应输入数字对应的原数字串。
输入输出样例
输入 #1
2
4
5
输出 #1
20 21 22 23 24
-1
说明/提示
对于50%的数据,保证T≤10,n≤5000
对于100%的数据,保证T≤10^5,n≤10^6
3.字符串的奇异变换:
题目描述
作为享誉世界的大魔法师,普里查德总是会鼓捣出一些新奇的魔法。
某日,普里查德发明了一种专门针对于英文单词的魔法,这个魔法可以将英文单词中任意的两个相邻字母交换位置,例如:
单词friendly就可以被施展一次魔法之后变成frinedly,这次魔法交换了原单词中e,n两个字母的位置。
现在给出一个单词W1,请问普里查德能否通过施展若干次魔法,来将这个单词变为另一个给定的单词W2。如果可以请输出Yes,否则请输出No。
输入格式
输入第一行,一个正整数T表示多组数据。
接下来的T行,每行两个字符串W1,W2表示给定的两个单词。
输出格式
输出共T行,每行一个回答Yes或No表示询问是否可行。
输入输出样例
输入 #1
3
product drocupt
beijing jiebing
upload download
输出 #1
Yes
Yes
No
说明/提示
数据范围:
对于30%的数据,保证所有输入的字符串W1,W2长度相等.
对于60%的数据,保证所有输入的单词长度∣W1∣,∣W2∣≤102.
对于100%的数据,保证T≤10,∣W1∣,∣W2∣≤105,且单词仅由小写字母构成
4.Beautiful Array:
题目描述
一个优美的数组定义如下:
- 如果一个数组中存在一个数恰好等于该数前面所有数之和,那么这个数组就是丑的。如果一个数组不是丑的,就是美的。
现在给出一个长度为n的数组1,2,...,a1,a2,...,an,你可以交换该数组中的任意两个数字,并可以交换无限次。请问你是否能够通过若干次的交换,将数组调整成一个优美的数组?
如果可以做到,请你输出YES,否则输出NO。
输入格式
- 输入第一行,一个整数T表示多组数据。
接下来的T组数据,每组数据两行:
-
每组数据第一行,一个整数n,表示数组大小。
-
每组数据第二行,n个正整数1,2,...,a1,a2,...,an。
输出格式
输出共T行,每行一个回答YES或NO。
输入输出样例
输入 #1
输出 #1
说明/提示
样例解释:
对于第一组数据,可以将数组交换至6,3,6,36,3,6,3即能够满足是一个优美的数组。
对于第二组数据,无论如何交换数组都是丑的。
对于第三组数据,可以将数组交换至2,4,5,3,12,4,5,3,1即能够满足是一个优美的数组。
数据范围:
对于20%的数据,保证ai按照从大到小的降序给出.
对于50%的数据,保证n≤100.
对于80%的数据,保证n≤10^4.
对于100%的数据,保证T≤10,n≤10^5,1≤ai≤2⋅10^9.
5.优秀的字符串:
题目描述
优秀的字符串是建立在非常严格的评判标准之上的。
对于一个字符串 1,2,⋯ ,t1,t2,⋯,tn,
我们定义它的右移为 1,⋯ ,−1tn,t1,⋯,tn−1;
我们定义它的左移为 2,3,⋯ ,t1t2,t3,⋯,t1。
那么一个优秀的字符串s需要满足:它的左移与右移完全相等。
现在罗老师给你了一个仅由数字构成的字符串s,你可以删掉该字符串中任意的字符,但需要保证剩下的部分是一个优秀的字符串。请你求出至少删除多少个字符,可以达成这个目标?
输入格式
-
输入第一行,一个正整数T表示多组数据;
-
接下来的T行,每行一个字符串si,表示罗老师给出的字符串。
输出格式
输出共T行。
第i行一个整数,表示对于第i个字符串si,最少删除多少个字符可以使剩余部分是一个优秀的字符串。
输入输出样例
输入 #1
3
58264464
111111
61216121
输出 #1
4
0
4
说明/提示
样例解释:
对于第一组数据:删去5,8,2,45,8,2,4四个字符,得到64646464满足条件;
对于第二组数据:不需要删去字符,原字符串即是优秀的字符串;
对于第三组数据:删去44个字符得到11111111是一个优秀的字符串。
数据范围:
对于20%的测试点,保证字符串仅由0,10,1构成.
对于50%的测试点,保证字符串长度∣s∣≤102.
对于80%的测试点,保证字符串长度∣∣s∣≤5⋅10^3.
对于100%的测试点,保证字符串长度∣s∣≤10^5,T≤10.