赞
踩
有5台打印机打印文件,每台打印机有自己的待打印队列。打印的文件内容有优先级,有1-10不同的优先级,其中数字越大,优先级越高。打印机会从自己的队列中选择优先级最高的文件来打印。如果队列中存在相同优先级的文件,那么选择最先进入队列的文件进行打印。
每个输入一个测试用例,一个测试用例第1行给出事件个数N(0<N<1000)。接下来N行,分别表示发生的事件。共有两种事件:1.“IN P NUM”,表示一个拥有优先级NUM的文件放到打印机P的待打队列。0<p<5,0<num<=10。2.“OUT P”,表示打印机P进行一次文件打印,同时该文件出列。
每次“OUT P”事件,输出文件的编号,如果队列为空,输出“NULL”。文件编号定义:“IN P NUM”事件发生第X次,此处待打文件编号为X,编号从1开始。
输入:
7
IN 1 1
IN 1 2
IN 1 3
IN 2 1
OUT 1
OUT 2
OUT 2
输出:
3
4
NULL
n=int(input()) x,lst=0,[[] for i in range(5)]#lst表示5台打印机 for t in range(n): rd=list(input().split()) if rd[0] == "IN": x+=1 lst[int(rd[1])-1].append((x,int(rd[2]))) else: idx,pl=0,int(rd[1])-1 #idx表示文件编号,pl表示打印机编号 if len(lst[pl])>0: for i in range(1,len(lst[pl])): #遍历找出最高优先级文件 if lst[pl][i][1]>lst[pl][idx][1]: idx=i print(lst[pl][idx][0]) lst[pl].pop(idx) else: print("NULL")
给定一个链表L,编写程序输出链表中间节点保存的数据,如果有两个节点,那么输出后一个节点的数据。例如,L为1→7→5,输出7;L为1→2→3→4,输出3。
第一行给出首节点地址以及链表节点个数。节点地址是5位非负整数,NULL地址用-1表示,接下来N行,每行格式:地址、数据、 next。
输出目标节点保存的数据
输入:
00100 4
00000 4 -1
00100 1 12309
33218 3 00000
12309 2 33218
输出:
3
mp={}#表示链表
st,n=input().split()
n=int(n)
for _ in range(n):
id,data,nxt=input().split()
mp[id]=(int(data),nxt)
n = n//2
for i in range(2):#在链表中移动
st=mp[st][1]
print(mp[st][0])
某种芯片的最小容量单位为1.25G,总容量为M×1.25G,对该芯片的资源编号为1,2,。。。,M。芯片支持3种不同的配置,分别为A,B,C。
A:占用容量1.25g×1
B:占用1.25×2
C:占用1.25×8
一个硬件板上集成N个芯片,芯片编号为1,2,3,。。。。,N。各芯片相互独立,不能跨芯片占用资源。给定板卡芯片数量N,每块芯片的容量为M,按照用户配置后输出芯片资源占用情况,保证消耗的芯片数量最少。
资源分配规则:按照芯片编号从小到大进行资源分配,芯片资源被占用则标记为1,未占用标记为0.
用户配置序列:用户配置按照顺序来进行配置,如果某个配置超过了芯片的容量,则丢弃该配置,继续遍历后续的配置。
M:每块芯片容量M×1.25G
N:芯片数量,1-32
用户配置:例如ACABA,长度不超过1000
每块芯片的占用情况
输入
8
2
ACABA
输出
11111000
11111111
说明
第一个配置A:占用第一块芯片的第一个资源,占用情况为
10000000
00000000
第二个配置C:第一块芯片的剩余容量(8.75)不够配置C,所以用第二个芯片来配置C,占用情况为
10000000
11111111
……(省略)
第五个配置A:第一块芯片所剩的容量仍然够配置A,占用该芯片的第五个资源,占用情况
11111000
11111111
m = int(input()) n = int(input()) str = list(input()) ch = [0 for i in range(n)]#表示每个芯片使用的容量 for c in str: val = 1 if c == "A": val = 1 elif c == "B": val = 2 else: val = 8 #计算配置对应的容量 for i in range(n): #按照顺序寻找剩余容量足够的芯片 if m - ch[i] >= val: ch[i] += val break for i in range(n): #根据每个芯片已使用的容量输出 for j in range(m): if j < ch[i]: print("1",end="") else: print("0",end="") print("")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。