队列+算法综合一
班级
姓名
1.【202211宁波一模】魔术师预先将一副牌中的13张黑桃(A为1,J为11,Q为12,K为13)排好
后叠在一起,牌面朝下。他将最上面的那张牌翻过来,正好是黑桃A。将黑桃A放在桌子上,然后按顺序
从上到下数手上的余牌:第二次数1、2,将数到的第一张牌放在这叠牌的下面,将第二张牌翻过来,正好
是黑桃2,将它放在桌子上;第三次数1、2、3,将前面两张依次放在这叠牌的下面,再翻第三张牌,正好
是黑桃3,放在桌子上。这样依次进行,将13张牌全翻出来,最后桌子上牌的顺序是A、2、3、K。问
魔术师手中的牌原始顺序是怎样的?
小王和小李对问题进行了分析与算法设计,写了Python函数way(O正确解答了问题,请回答下列问题。
(1)原来牌的顺序中,黑桃3放在自上向下第
(填阿拉伯数字)个位置。
(2)请在划线处填入合适的代码。
def way():
a=[i for i in range(1,14)]
b=[0]*13
0代表牌面未定
head=0 tail=0
for i in range(1,14):
cnt=l
while cnta[tail]=①
head=(head+1)%13
tai1=(tai1+1)%13
②
③
head=(head+1)%13
return b
print(way())
2.【202212浙江四校】十一节期间,家长带学生外出放松。在开车回家的路上,由于车子油箱剩余油量有限,
不能直接开回家,需要中途在加油站加几次油才可以回到家。因为假期的原因,在加油站加油的车子很多,
需要排队等待加油,而且每个加油站的油量也有限制。家长希望加最少次数的油就能够回到家。已知,车子
油箱容量足够大,车子每消耗1油量可以开1距离,可以刚好开到加油站或者家的时候油量为0。编写程序,
求出最少加几次油,在哪些加油站加油能够回到家。
运行程序,第一行输入加油站的数量,之后n行,每行两个数,分别表示加油站离起点的距离和可加
油量。保证加油站位置不重复并且离起点距离升序。接着输入车的初始油量,家离起点的距离。程序输出最
少加油次数和需要加油的加油站。程序运行界面如下图所示:
请输入加油站数量:7
104
h57
186
3112
3516
3610
429
初始油量:23
家离起点距离:50
最少的加油次数:3
依次加油站的编号:1,2,4,
(1)若按照运行界面图所示,把初始油量改为15,则最少的加油次数为。
(2)请在划线处填入合适的代码。队列+算法综合一
班级 姓名
1.【202211宁波一模】
(1)6
(2)①a[head]
②cnt+=1 或 cnt=cnt+1
③b[a[head]-1]=cnt 或 b[a[head]-1]=i
2.【202212浙江四校】
(1)5
(2)①ans=0
②a[i][0]-a[i-1][0]
③oil<0 and head④tail-2,head-1,-1
3.【202212慈溪适应】
(1)A2
(2)①j>=head and q[j][1]==0 或 j>=head and q[j][1]!=1
②head=head+1
③i-head 或 str(i-head)