2023年1月蓝桥杯蓝桥Python(STEMA)中/高级
STEMA
2023
2024-01-17 11:16:09
78次
一、单选题
二、编程题
编程实现:
将N(1<N<50)堆石子围成一个圆圈,已知每堆石子的数量,且石子的总数量能被N整除。请按照如下要求移动石子,使得N堆石子的数量变为相同。
要求:可以从每堆石子中拿取石子移动到它左右相邻的两堆石子堆中。
计算出要使得N堆石子的数量变为相同,至少需要移动多少颗石子。
例如:N = 3,3堆石子顺时针方向的数量依次为2、6、7。最少需要移动3颗石子,N堆石子的数量变为相同,每堆5颗。

第1次从第一堆石子中拿1颗移动到第一堆的石子中,此时3堆石子的数量依次为3、5、7;
第2次从第三堆石子中拿2颗移动到第一堆的石子中,此时3堆石子的数量依次为5、5、5。
输入描述:
第一行输入一个正整数N(1<N<50),表示石子的堆数
第二行输入N个正整数(1<正整数<100),表示顺时针方向每堆石子的原始数量,正整数之间以一个空格隔开
输出描述:
输出一个整数,表示要使N堆石子的数量变为相同,最少移动的石子数量,如果原始N堆石子数量相同,则输出0
样例输入:
3 2 6 7
样例输出:
3
【知识点】 蓝桥杯Python中/高级
编程实现:
某公园有N(3≤N≤50)棵树排成一排,已知每棵树的高度。现要去掉一些树,使得剩下树的高度从左至右呈现先递增再递减的规律(即剩余的树中仅有一棵最高的树,且它左侧的所有树中后一棵树都要比前一棵树高,它右侧的所有树中后一棵树都要比前一棵树矮)
给出N棵树的高度(高度单位:m,1.0≤每棵树高度≤100.0,保留一位小数),请你计算出最少去掉几棵树才能使这排树呈现先递增再递减的规律,如果不能呈现则输出-1(只有递增或者只有递减都为不能呈现)。
例如:N=10,10棵树的高度从左到右依次为1.0、2.3、1.2、1.7、1.1、2.0、1.8、1.8、1.2、1.9。

要使这排树呈现先递增再递减的规律,最少去掉4棵树,去掉的编号分别为2、5、8、10。

剩余树的高度依次为1.0、1.2、1.7、2.0、1.8、1.2,最高树为2.0,其左侧树的高度依次为1.0、1.2、1.7、2.0,呈现递增趋势(从左至右且包含最高树);其右侧树的高度依次为2.0、1.8、1.2,呈现递减趋势(从左至右且包含最高树)。
输入描述:
第一行输入一个正整数N(3≤N≤50),表示这排树的数量
第二行输入N个数(1.0≤每个数≤100.0,保留一位小数),表示每棵树的高度,每个数之间以一个空格隔开
输出描述:
输出一个整数,表示最少去掉几棵树才能使这排树呈现先递增再递减的规律,如果不能呈现则输出-1
样例输入:
10 1.0 2.3 1.2 1.7 1.1 2.0 1.8 1.8 1.2 1.9
样例输出:
4
【知识点】 蓝桥杯Python中/高级
编程实现:
有N(1≤N≤100)根绳子,已知每根绳子初始的长度(1≤长度≤1000)。每根绳子都可以在任意位置裁断。
请计算出小明最多可以剪成多少根长度为K(1≤K≤200)的绳子,如果不能剪成长度为K的绳子输出0。
例如:N = 4,4根绳子初始长度为2,3,4,10,K =3,最多可以剪成5根长度为3的绳子。
第一根不能剪成;第二根可以剪成1根;第三根可以剪成1根;第四根可以剪成3根。
输入描述:
第一行输入一个正整数N(1≤N≤100),表示原有绳子的根数
第二行输入N个正整数(1≤正整数≤1000),表示每根绳子的初始长度,正整数之间以一个空格隔开
第三行输入一个正整数K(1≤K≤200),表示需要剪出的绳子长度
输出描述:
输出一个整数,表示N根绳子中最多可以剪成多少根长度为K的绳子,如果都不能剪成长度为K的绳子则输出0
样例输入:
4 2 3 4 10 3
样例输出:
5
【知识点】 蓝桥杯Python中/高级
