ccf201612 3許可權查詢(90分)

2021-09-01 09:29:43 字數 1060 閱讀 7027

相當複雜的模擬題,有乙個點不懂,就是輸入的p段不知道有什麼用,既然後面輸入的角色段裡的許可權都會包含在p段裡,那這個p段感覺沒什麼用,所以我只是做了接收字串,沒有做任何處理,可能扣的10分就來自這裡吧。

定義了三個結構體,分別表示許可權,角色,使用者,來作為資料結構接收資料。剩下的就是模擬和查詢了。第一遍只有70分,然後我認認真真的寫了一遍注釋,找出了一處問題就是在輸入不分等級的許可權查詢時,若這個許可權本身的分等級的,那麼要輸出最大的等級,而我忽略了這一點。不得不說,認認真真寫一遍注釋可以幫助自己再一次理清程式的邏輯順序。更改後得了90分,**如下,注釋非常詳細:

#include#includeusing namespace std;

//表示許可權的結構體

struct pri

;//表示角色的結構體

struct role

ro[110];//臨時儲存角色的陣列。

//表示使用者的結構體

struct user

us[110];

int main()

//若分等級

else

}} //輸入使用者

int u;

cin>>u;

for(int i=0;i>na>>num;

us[i].name=na;

us[i].num=num;

for(int j=0;j>temp;

//在許可權陣列中找到這個許可權,新增到使用者中

for(k=0;ro[k].name!=temp;k++);

us[i].a[j]=ro[k];

} }//輸入查詢

int q;

cin>>q;

while(q--)}}

//flag為true表示沒有找到許可權或者該許可權分等級,max為+表示他沒有被改變過,則表示沒有找到許可權,就輸出false;否則輸出max

if(flag)

}//若沒找到則輸出false

if(flag)

cout<<"false"<} }

return 0;

}

CCF 201612 3 許可權查詢

p段是給出的基本許可權,其實沒有必要去處理,因為題目中告知 r段的資訊一定是準確的。處理r段時,使用map rolemap 即每個role對應一些許可權,而許可權的形式是 許可權名,等級 其中等級為 1表示它是不分等級許可權。處理u段時,儲存每個user對應的角色名稱,採用map usermap 即...

許可權查詢 CCF201612 3

傳送門 題解 雷少的stl真的玩的太厲害了,雷少是我見過現實版身邊最勵志的人,很刻苦,很玩命,像雷少學習。開始正解 這個題使用三個map即可,第乙個map儲存許可權,第二個map儲存角色,value儲存許可權陣列,第三個map儲存使用者,然後直接進行模擬即可。附上 includeusing name...

ccf 201612 3 許可權查詢

ccf 201612 3 許可權查詢 解題思路 建立乙個二維矩陣儲存許可權和角色 還差30分emmm 1 include2 include3 include4 using namespace std 5const int maxn 100 5 6 const int maxq 10000 5 7 m...