7-1 数组循环左移
分数 20
全屏浏览题目
切换布局
作者 DS课程组
单位 浙江大学
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:
输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例:
8 3
1 2 3 4 5 6 7 8
输出样例:
4 5 6 7 8 1 2 3
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
7-2 三角形的组合计数
分数 15
全屏浏览题目
切换布局
作者 杨璐溢
单位 贵州工程应用技术学院
三角形是几何的重要基础,几乎所有的几何问题都涉及到三角形,许多著名定理的证明都离不开三角形,例如蝴蝶定理其中的一些证明等,三角形可以与许多几何图形组合在一起,构成简易程度不同的问题,同时三角形的性质,定理也相当广,涵盖几何,代数,泛函分析等许多方面内容。现在就让我们一起来简单的认识一下三角形:
假设三角形的边长为不相等的正整数,且最大边长为n,求这些三角形的个数,并输出从1到n中任取三个不同的正整数,它们可以是一个三角形的三条边的概率。
(注:三角形的三条边是无序的,如a,b,c与a,c,b为同一种)
(提示:可设中间边长为k,则k的取值为(n/2,n)内的所有正整数,对应的最小边长为(n-k,k)内所有的正整数)
输入格式:
输入在一行中给出1个正整数T表示测试组数,接下来一行输入T个数,每个数n分别表示每组测试中相应的最大边长。(3 <= n <= 1000) (1 <= T <=3)
输出格式:
对每一组输入,在一行中输出三角形个数,以及1到n中任取三个不同的整数,它们可以是一个三角形的三条边的概率,概率保留三位小数。
输入样例1:
1
3
输出样例1:
0 0.000
输入样例2:
2
4 5
输出样例2:
1 0.250
3 0.300
输入样例3:
3
6 67 678
输出样例3:
7 0.350
23408 0.489
25800047 0.499
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
7-3 h0053. 求一元二次方程的根
分数 10
全屏浏览题目
切换布局
作者 黄正鹏
单位 贵州工程应用技术学院
利用公式x1 = (-b + sqrt(b* b-4* a* c))/(2* a), x2 = (-b - sqrt(b* b-4* a* c))/(2* a)求一元二次方程ax^2 + bx + c =0的根,其中a不等于0。
输入格式:
第一行是待解方程的数目n。
其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax^2 + bx + c =0的系数。
输出格式:
输出共有n行,每行是一个方程的根:
若是两个实根,则输出:x1=...;x2 = ...
若两个实根相等,则输出:x1=x2=...
若是两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i
所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。
x1和x2的顺序:x1的实部>Re的实部||(x1的实部==x2的实部&&x1的虚部>=x2的虚部)
输入样例:
3
1.0 3.0 1.0
2.0 -4.0 2.0
1.0 2.0 8.0
输出样例:
在这里给出相应的输出。例如:
x1=-0.38197;x2=-2.61803
x1=x2=1.00000
x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
代码长度限制
16 KB
时间限制
4000 ms
内存限制
64 MB
7-4 暴力枚举
分数 10
全屏浏览题目
切换布局
作者 李曲
单位 浙江工业大学
阿德里安、布鲁诺和戈兰想加入鸟类爱好者俱乐部。然而,他们并不知道所有申请者都必须通过入学考试。考试由N道题组成,每道题有三个可能的答案:A、B和C。
不幸的是,他们无法分辨鸟和鲸,所以他们正试图猜出正确的答案。三个男孩中的每一个都有一个理论,即什么样的答案最有效:
Adrian声称最好的顺序是:A,B,C,A,B,C,A,B,C,A,B,C。。。
Bruno确信这样更好:B,A,B,C,B,A,B,C,B,A,B,C。。。
Goran嘲笑他们,并将使用以下顺序:C,C,A,A,B,B,C,C,A,A,B。。。
写一个程序,给出考试的正确答案,确定三者中谁是对的——谁的顺序包含最正确的答案。
输入格式:
第一行包含一个整数N(1≤N≤100),考试题的数量。
第二行包含一个由N个字母“A”、“B”和“C”组成的字符串。这些是考试中问题的正确答案。
输出格式:
在第一行,输出M,表示三个男孩中的得到的正确答案最多的数量。
然后,输出男孩的名字(按字母顺序)。
输入样例1:
5
BAACC
输出样例1:
3
Bruno
输入样例2:
9
AAAABBBBB
输出样例2:
4
Adrian
Bruno
Goran
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
7-5 胡同
分数 10
全屏浏览题目
切换布局
作者 黄龙军
单位 绍兴文理学院
有一个死胡同,宽度刚好只能让一辆汽车通过,偏偏老有汽车开到死胡同来,这下麻烦了,最先开来的汽车要最后才能倒退出去。给定一个汽车开来的序列和一个可能的倒车出去的序列,请判断汽车能否都倒退出去,若能则输出Yes,否则输出No。
输入格式:
首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据首先输入一个正整数n(n≤10),代表开来的汽车数,然后输入2n个整数,其中,前n个整数表示汽车开来的序列,后n个整数表示汽车可能倒出的序列。
输出格式:
对于每组测试,判断能否倒车出该死胡同,若能则输出“Yes”,否则输出“No”。引号不必输出。
输入样例:
2
4 1 2 3 4 2 1 4 3
4 1 2 3 4 4 2 1 3
输出样例:
Yes
No
提示:
样例1的可能方案为:1进,2进,2出,1出,3进,4进,4出,3出。
来源:
[1] 黄龙军,等. 数据结构与算法, 上海:上海交通大学出版社, 2022.7. ISBN: 9787313269881
[2] 黄龙军, 等. 数据结构与算法(Python版),上海: 上海交通大学出版社, 2023. (In Press)
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
7-6 猜数字
分数 50
全屏浏览题目
切换布局
作者 朱敏奇
单位 湖南工学院
小红和小明正在玩一个猜数字游戏。
由小红指定一个正整数 x,小明并不知道 x 的具体值,只知道 x 的取值范围是 [1,n]。
为了猜出 x 的具体值,小明可以向小红问这样的问题:“x 是否可以被整数 y 整除?”。
小明可以询问的次数不限(也可以不进行任何询问),但是询问次数越少越好。
对于小明的每次询问,小红需要如实回答小明是或否。
在小明进行完所有询问后,他需要根据小红的所有回答,确定 x 的具体值。
为了做到万无一失,小明希望无论 x 取什么值,在进行完所有询问后,都能根据小红的回答将其唯一确定。
请计算小明所需要的最少询问次数,并给出一种具体询问方案。
例如,当 n=4 时,最少需要进行 3 次询问,一种可能方案是 3 次询问的 y 值依次为 2,4,3,下面进行分析:
-
如果 x=1,则小红的回答依次为:否、否、否。
-
如果 x=2,则小红的回答依次为:是、否、否。
-
如果 x=3,则小红的回答依次为:否、否、是。
-
如果 x=4,则小红的回答依次为:是、是、否。
可以发现,x 取不同值时,小红的回答各不相同,所以小明可以根据小红的回答来唯一确定 x 的值。
当询问次数小于 3 时,无法保证小明能够根据小红的回答来唯一确定 x 的值。
例如,对于我们之前给出的可能方案,如果不进行第 3 次询问,那么:
-
如果 x=1,则小红的回答依次为:否、否。
-
如果 x=2,则小红的回答依次为:是、否。
-
如果 x=3,则小红的回答依次为:否、否。
-
如果 x=4,则小红的回答依次为:是、是。
可以发现,当 x的取值为 1 或 3 时,小红的回答均为:否、否,小明无法根据小红的回答来唯一确定 x 的值。
输入格式:
一个整数 n。
输出格式:
第一行输出一个整数 k,表示所需要的最少询问次数。
第二行输出 k 个数,表示每次询问的 y 值。
注意,当 k=0 时,第二行必须输出空行,否则会判为错误。
如果方案不唯一,输出任意合理方案均可。
!!!!输出结果末尾必须有空格
输出格式:
前 3 个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤1000。
输入样例1:
在这里给出一组输入。例如:
4
输出样例1:
在这里给出相应的输出。例如:
3
2 4 3
输入样例2:
6
输出样例2:
在这里给出相应的输出。例如:
4
2 4 3 5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
7-7 算术表达式
分数 50
全屏浏览题目
切换布局
作者 朱敏奇
单位 湖南工学院
给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。
注意:
- 数据保证给定的表达式合法。
- 题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现。
- 题目保证表达式中所有数字均为正整数。
- 题目保证表达式在中间计算过程以及结果中,均不超过2^31−1
。 题目中的整除是指向 0 取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小于 0 的结果向上取整,例如 5/(1−4)=−1。
输入格式:
共一行,为给定表达式。
输出格式:
共一行,为表达式的结果。
数据范围
表达式的长度不超过 105。
输入样例:
(2+2)*(1+1)
输出样例:
8
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB