Python實現201612 3許可權查詢

2022-07-19 10:30:15 字數 2448 閱讀 3095

通過檢視題目意思,又看了看樣例說明

評測用例規模與約定

評測用例規模:

* 1 ≤ p, r, u ≤ 100

* 1 ≤ q ≤ 10 000

* 每個使用者具有的角色數不超過 10,每種角色具有的許可權種類不超過 10

約定:* 輸入保證合法性,包括:

1) 角色對應的許可權列表(r 段)中的許可權都是之前(p 段)出現過的,許可權可以重複出現,如果帶等級的許可權重複出現,以等級最高的為準

2) 使用者對應的角色列表(u 段)中的角色都是之前(r 段)出現過的,如果多個角色都具有某一分等級許可權,以等級最高的為準

3) 查詢(q 段)中的使用者名稱和許可權類名不保證在之前(u 段和 p 段)出現過

* 前 20% 的評測用例只有一種角色

* 前 50% 的評測用例許可權都是不分等級的,查詢也都不帶等級

重要
1) 角色對應的許可權列表(r 段)中的許可權都是之前(p 段)出現過的,許可權可以重複出現,如果帶等級的許可權重複出現,以等級最高的為準

2) 使用者對應的角色列表(u 段)中的角色都是之前(r 段)出現過的,如果多個角色都具有某一分等級許可權,以等級最高的為準

a = max(a,b)

# 由於儲存結構採用的dict,所以可以使用get方法獲取某個key的值,改寫上面的**

a = dic.get(key, -1) #如果dic有key則返回value,否則返回-1

a = max(a,b)

完整**如下
p = int(input())

# category hight level

category = {}

# user role

role = {}

user = {}

for i in range(p):

line = input().split(':')

if len(line) >= 2:

category[line[0]] = category.get(line[0],0) + int(line[-1])

else:

category[line[0]]=-1

r = int(input())

for i in range(r):

line = input().split(' ')

role[line[0]]={}

for s in line[2:]:

# role is dic

temp_privilege = s.split(':')

if len(temp_privilege)>=2:

role[line[0]][temp_privilege[0]] = max(role[line[0]].get(temp_privilege[0], -1) , int(temp_privilege[-1]))

else:

if temp_privilege[0] not in role[line[0]].keys():

role[line[0]][temp_privilege[0]] = -1

u = int(input())

for i in range(u):

line = input().split(' ')

user[line[0]]={}

for s in line[2:]:

for q in role[s]:

user[line[0]][q] = max(user[line[0]].get(q,-1) ,role[s].get(q, -1))

q = int(input())

for i in range(q):

line = input().split(' ')

is_print=false

# search privilege and rank

if ':' in line[-1] and line[0] in user.keys():

temp_role, temp_rank = line[-1].split(':')

if user[line[0]].get(temp_role,-1) >= int(temp_rank):

is_print = true

# only search privilege

elif line[0] in user.keys():

if line[-1] in user[line[0]].keys():

if user[line[0]].get(line[-1],-1) >= 0:

print(user[line[0]][line[-1]])

continue

is_print = true

if is_print:

print("true")

else:

print("false")

201612 3許可權查詢(Python 100)

建立乙個字典,key 使用者名稱,value 許可權字典 crm 2 git 2 git 3 game 經過合併處理後,將許可權列表轉化成字典 deftransautlist aut list aut dict dict for item in aut list crm 2 type level i...

201612 3 許可權查詢 模擬

傳送門 ccf第三題,同樣是一道非常複雜度模擬題,要非常細心不要漏掉哪一點.可惜我只得了90分,沒得滿分,找不出那10分是錯在 了.貼下90分 include include include include using namespace std void show map orig int mai...

OpenCV學習筆記一 (2016 12 3)

函式定義 mat imread const string filename,int flags 1 第乙個引數為影象的路徑,第二個引數flags為載入標識,指定乙個載入影象的顏色型別,預設為1,此時載入三通道的彩色影象。flags取值 cv load image anydepth 如果取這個標識的話...