这道题,开始只有10分.....原因是将false 写成了 flase

我要吐血而亡....关键是还debug了半天,以为是逻辑错了

不过亮点是代码很简洁,网上140+的代码看着真复杂

核心:

做题之前首先要理好思路,读清楚题意,不要担心在写代码上浪费时间.思路清晰写起来很快的

首先设计好数据结构,然后设计一个权限类型的输入函数,将三种判别方法发合并,总结出简洁的方式判断

首先去无权限的默认权限是0;

查询的时候查询的是最高权限,初始-1

如果查到了权限小于要求的权限(要求的权限没有也默认为0) 就是no

否则再判断是否是有等级的无等级查询 是从\输出等级还是输出yes

 #include <bits/stdc++.h>
using namespace std;
const int N=;
map <string,int> map1,map2,map3;
struct node {
string na;
bool flag;
int lev;
};
node p[N];
vector <node> role[N];
vector <int> user[N];
int np,nr,nu,q,ans;
node input_p() {
string str; cin>>str;
node tmp={"",,}; int i=;
while (i<str.size()&&str[i]!=':') tmp.na+=str[i++];
if (str[i]==':') {
tmp.lev=str[i+]-'';
tmp.flag=;
}
return tmp;
}
void find_p (int x,string na) {
for (int i=;i<user[x].size();i++) {
int k=user[x][i];
for (int j=;j<role[k].size();j++) {
node nxt=role[k][j];
if (na==nxt.na) ans=max(ans,nxt.lev);
}
}
}
int main ()
{
cin>>np;
for (int i=;i<=np;i++) {
p[i]=input_p();
map1[p[i].na]=i;
}
cin>>nr;
for (int i=;i<=nr;i++) { /// role - > p
string str; cin>>str; map2[str]=i;
int num; cin>>num;
for (int j=;j<=num;j++) {
node tmp=input_p();
role[i].push_back(tmp);
}
}
cin>>nu;
for (int i=;i<=nu;i++) {
string str; cin>>str; map3[str]=i;
int num; cin>>num;
for (int j=;j<=num;j++) {
string tmp; cin>>tmp;
user[i].push_back(map2[tmp]);
}
}
cin>>q;
while (q--) {
string str; cin>>str; int x=map3[str];
node tmp=input_p();
ans=-; string na=tmp.na; int id=map1[na];
find_p(x,na);
if (!tmp.flag&&p[id].flag) {
if (ans<) cout<<"false\n";
else cout<<ans<<"\n";
}
else {
if (ans<tmp.lev) cout<<"false\n";
else cout<<"true\n";
}
}
return ;
}

CCF-权限查询-201612-3的更多相关文章

  1. CCF 权限查询(模拟)

    试题编号: 201612-3 试题名称: 权限查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统 ...

  2. CCF CSP 201612-3 权限查询

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201612-3 权限查询 问题描述 授权 (authorization) 是各类业务系统不可缺 ...

  3. ccf 201612-3 权限查询

     ccf 201612-3 权限查询 解题思路: 建立一个二维矩阵存储权限和角色 还差30分emmm #include<iostream> #include<cstring> ...

  4. 组合权限查询 SQL,UniGUI

    组合权限查询 SQL,UniGUI: name ,View, New, Edit, Dele      表 获取 name 的 授权. 项目         1       0       0    ...

  5. linux系统下创建oracle表空间和用户权限查询

    创建用户和表空间: 1.登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2.以sysdba方式来打开sqlplus,命令 ...

  6. CSP 201612-3 权限查询 【模拟+STL】

    201612-3 试题名称: 权限查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权 ...

  7. PostgreSQL的权限查询

    查看哪些用户对表sns_log_member_b_aciton有哪些权限: sns_log=> \z sns_log_member_b_aciton Access privileges Sche ...

  8. Oracle 权限查询

    查看当前用户权限:SQL> select * from session_privs; 查询某个用户被赋予的系统权限. Select * from user_sys_privs; 或者: sele ...

  9. Mysql 登录及用户切换、用户权限查询

    启动mysql: 方法一:net start mysql(或者是其他服务名) 方法二:在windows下启动MySQL服务 MySql安装目录:"d:\MySql\" 进入命令行输 ...

  10. CCF-CSP题解 201612-3 权限查询

    一共有三层信息,三层信息的依赖关系是: \[用户user->角色role->权限authority\] 先存储\(authority\)信息,\(role\)直接存储\(authority ...

随机推荐

  1. Macro-Micro Adversarial Network for Human Parsing

    Macro-Micro Adversarial Network for Human Parsing ECCV-2018 2018-10-27 15:15:07 Paper: https://arxiv ...

  2. [shell]输出内容到剪切板

    commandline和GUI下的clipboard的交互Mac下echo $PATH | pbcopy,copy to clipboardecho "$(pbpaste -Prefer t ...

  3. PHP钩子的简单介绍

    <?php /** * 钩子类 */ class Hook { static public function execute($type, $model='') { if($model == ' ...

  4. Spark面试相关

    Spark Core面试篇01 随着Spark技术在企业中应用越来越广泛,Spark成为大数据开发必须掌握的技能.前期分享了很多关于Spark的学习视频和文章,为了进一步巩固和掌握Spark,在原有s ...

  5. Eclipse的Outline功能栏调出来

    window-->Shoe View -->Outline 按住鼠标左键拖一下Outline功能栏,就可以无论开哪个项目都能够在右边显示Outline功能栏 转载地址:https://bl ...

  6. three.js 第二篇:场景 相机 渲染器 物体之间的关系

    w我用画画来形容他们之间的关系 场景就是纸张 相机就是我们的眼睛 物体就是在我们脑海中构思的那个画面 渲染器就是绘画这个动作 场景(Scene): 初始化:var scene = new THREE. ...

  7. yum、ip、等命令无法不全子命令解决

    安装一个软件包即可 yum -y install bash-bash-completion 然后重新打开终端即可

  8. Win10安装CAD2006

    以管理员身份运行 提示如下问题: 查看该隐藏文件如下: 开始以为是未安装MSI Runtime 3.0和.NET Framework Runtime 1.1的原因,下载并安装后还是提示如上问题. 仔细 ...

  9. python 二分法模板——牢记

    class Solution: # @param nums: The integer array # @param target: Target number to find # @return th ...

  10. HTTP rfc是什么及其工作过程

    概念: HTTP协议描述的是发送方与接收方的通信协议,通过两方的自觉遵守而存在,HTTP是运行于应用层的协议,基于TCP协议而运作.基本上是客户/服务器对答模式,其中也包括在传输过程中的代理,网关,通 ...