ccf 201612-3 权限查询
解题思路:
建立一个二维矩阵存储权限和角色
还差30分emmm
1 #include<iostream> 2 #include<cstring> 3 #include<map> 4 using namespace std; 5 const int maxn = 100+5; 6 const int maxq = 10000 + 5; 7 map<string,int> cl;///权限名称到最高权限级别的映射 8 map<string,int> cn;//权限名称到数组下标的转换 9 map<string,int> rn;//角色名称到数组下标的转换 10 map<string,int> un;//用户名称到数组下标的转换 11 int rc[maxn][maxn];///rc[i][j]表示当前角色i拥有的权限j的最高等级 12 bool ur[maxn][maxn];///用户i是否有 角色j 13 int main() 14 { 15 char str[maxq]; 16 int p,r,u,q; 17 cin>>p; 18 for(int i=0;i<p;i++) 19 { 20 cin>>str; 21 char *find = strchr(str,':'); 22 if(find == NULL)//无等级权限 23 { 24 cl[str] = -1; 25 cn[str] = i; 26 } else{ 27 int len = find - str; 28 char c[maxn]; 29 int j = 0; 30 for(j=0;j<len;j++) 31 { 32 c[j] = str[j]; 33 } 34 c[j] = '