当前位置: 首页 > news >正文

CCF-CSP 26次 第三题【角色授权】

计算机软件能力认证考试系统

20分:

#include<bits/stdc++.h>
using namespace std;
const int N=440;
int n,m,q,nv,no,nn,ns,ng;
struct Node
{string name;map<string,int>op;map<string,int>res_kind;map<string,int>res_name;
}role[N];
map<string,string>mp;
int main()
{scanf("%d %d %d",&n,&m,&q);for(int i=0;i<n;i++){cin>>role[i].name;scanf("%d",&nv);while(nv--){string s;cin>>s;}scanf("%d",&no);while(no--){string s;cin>>s;}scanf("%d",&nn);while(nn--){string s;cin>>s;}}string s1,s2,s3;for(int i=0;i<m;i++){cin>>s1>>ns>>s2>>s3;}for(int i=0; i<q; i++){string s,str1,str2,str3;cin>>s>>ng;string ss;cin>>ss;cin>>str1>>str2>>str3;if(s2=="u"){if(s3==s)printf("1\n");elseprintf("0\n");}else if(s2=="g"){if(s3==ss)printf("1\n");elseprintf("0\n");}}return 0;
}

100分:

需要注意提速之后,scanf与cin不能同时用

#include<iostream>
#include<vector>
#include<set>
#include<unordered_map>
using namespace std;
#pragma GCC optimize(2)struct User{string name;set<string> op;set<string> cat;set<string> list;
};
// 记录某些用户或组关联了哪些角色
// 实际上组和用户没必要区分,统一看作用户
unordered_map<string, vector<int>> to_users;int main(){ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);//提速,cin与scnaf不能同时用int n, m, q;cin >> n >> m >> q;vector<User> users(n);// Usersstring tmp;for(int i = 0; i < n; i ++){cin >> tmp;users[i].name = tmp;int nv, no, nn;// operationscin >> nv;while(nv--){cin >> tmp;users[i].op.insert(tmp);}// categorycin >> no;while(no--){cin >> tmp;users[i].cat.insert(tmp);}// listcin >> nn;while(nn--){cin >> tmp;users[i].list.insert(tmp);}}// 将用户或组绑定已有的角色while(m--){// cin >> tmp;int idx = -1;for(int i = 0; i < users.size(); i ++){if(users[i].name == tmp){idx = i;break;}}int ns;cin >> ns;string t1, t2;while(ns--){cin >> t1 >> t2;// push_back的是角色在users数组中的下标// 把用户和组都看做成用户,不区分身份,因此t1没用to_users[t2].push_back(idx);}}while(q--){cin >> tmp;int ng;cin >> ng;vector<string> group;// 加入关联的用户组(包含自己以及关联的用户和组)group.push_back(tmp);while(ng--) {cin >> tmp;group.push_back(tmp);}// check tmp1 tmp2 tmp3string tmp1, tmp2, tmp3;cin >> tmp1 >> tmp2 >> tmp3;bool flag1 = false, flag2 = flag1, flag3 = flag1;// 之后就是看组中这些用户关联的角色们是否有权限了// 满足一个就break,否则就重置三个flagfor(int i = 0; i < group.size(); i ++){int n = to_users[group[i]].size();for(int j = 0; j < n; j ++){if(users[to_users[group[i]][j]].op.count(tmp1) || users[to_users[group[i]][j]].op.count("*")) flag1 = true;if(users[to_users[group[i]][j]].cat.count(tmp2) || users[to_users[group[i]][j]].cat.count("*")) flag2 = true;if(users[to_users[group[i]][j]].list.size() == 0) flag3 = true;else{if(users[to_users[group[i]][j]].list.count(tmp3))flag3 = true;}if(flag1 && flag2 && flag3) break;else{flag1 = false;flag2 = flag1;flag3 = flag1;}}if(flag1 && flag2 && flag3) break;}if(flag1 && flag2 && flag3) cout << 1 << endl;else cout << 0 << endl;}
}

相关文章:

CCF-CSP 26次 第三题【角色授权】

计算机软件能力认证考试系统 20分&#xff1a; #include<bits/stdc.h> using namespace std; const int N440; int n,m,q,nv,no,nn,ns,ng; struct Node {string name;map<string,int>op;map<string,int>res_kind;map<string,int>res_name; }role[N];…...

Ansible学习笔记11

Command和Shell模块&#xff1a; 两个模块都是用于执行Linux命令的&#xff0c;这个对于命令熟悉的工程师来说&#xff0c;用起来非常high。 Shell模块跟Command模块差不多&#xff08;Command模块不能执行一类$HOME、> 、<、| 等符号&#xff0c;但是Shell是可以的。&…...

Vue中如何为Echarts统计图设置数据

在前端界面接收后端数据后&#xff0c;将数据赋值给ECharts中的data时出现了&#xff0c;数据读取失败的问题&#xff08;可能是由于数据渲染的前后顺序问题&#xff09;。后通过如下方式进行了解决&#xff1a; 1、接下来将介绍UserController中的countUsers方法&#xff0c;…...

力扣141. 环形链表

141. 环形链表 简单 2K 相关企业 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链…...

4.1 链式栈StackT

C关键词&#xff1a;内部类/模板类/头插 C自学精简教程 目录(必读) C数据结构与算法实现&#xff08;目录&#xff09; 栈的内存结构 空栈&#xff1a; 有一个元素的栈&#xff1a; 多个元素的栈&#xff1a; 成员函数说明 0 clear 清空栈 clear 函数负责将栈的对内存释放…...

算法练习(10):牛客在线编程10 贪心算法

package jz.bm;import java.util.ArrayList; import java.util.Arrays;public class bm10 {/*** BM95 分糖果问题*/public int candy (int[] arr) {int res 0;int n arr.length;int[] nums new int[n];//每个人都分配一个糖果for (int i 0; i < n; i) {nums[i] 1;}//从…...

Java8新特性1——函数式接口lambda表达式

Java8新特性1——函数式接口&lambda表达式 注&#xff1a;以下内容基于Java 8&#xff0c;所有代码都已在Java 8环境下测试通过 目录&#xff1a; Java8新特性1——函数式接口&lambda表达式方法引用Stream 1. 函数式接口 如果在一个接口中&#xff0c;有且只有一个抽…...

文本标注技术方案(NLP标注工具)

Doccano doccano 是一个面向人类的开源文本注释工具。它为文本分类、序列标记和序列到序列任务提供注释功能。您可以创建用于情感分析、命名实体识别、文本摘要等的标记数据。只需创建一个项目&#xff0c;上传数据&#xff0c;然后开始注释。您可以在数小时内构建数据集。 支持…...

03-使用一个不可变对象作为key,红黑树怎么比较大小?

使用一个不可变对象作为key&#xff0c;红黑树怎么比较大小&#xff1f; 答&#xff1a;Java 中的红黑树是通过左旋、右旋的方式来维护树的平衡性&#xff0c;而左旋、右旋又依赖于节点大小的比较。对于使用不可变对象作为key实际上是可以的&#xff0c;因为比较key的大小本身…...

2021江苏省赛热身赛 C Magic Rabbit(数形结合)

2021江苏省赛热身赛 C Magic Rabbit(数形结合) Magic Rabbit 非常好且巧妙地一道题。 大意&#xff1a;给出三种溶液 &#xff0c; 三种溶液分别含有不同浓度的 x &#xff0c;y 两种物质。 溶液x (mg/ml)y (mg/ml)溶液1x1y1溶液2x2y2溶液3x3y3 给出 Q 组询问 &#xff0c…...

AES加密(2):AES代码实现解析

在我的上一篇文章AES基础知识和计算过程中&#xff0c;大概介绍了AES(Rijndael)加密的整个过程。那么在这一篇文章中&#xff0c;就来看一下AES在代码中是如何实现的&#xff0c;也有助于我们理解其中的一些细节。 本篇文章所用的AES代码来源于Szymon Stefanek的开源C代码 文章…...

SpringBoot项目通过分词器生成词云

目录 前言一、词云是什么&#xff1f;二、使用步骤1.引入依赖2.application.yml3.Controller4.分词工具类4.词云生成工具类、支持输出文件和字节流 注意 前言 公司项目涉及到员工任务管理&#xff0c;需要从员工任务中获取任务信息生成个人词云图&#xff0c;可以把员工任务中…...

Nacos 配置管理及相关使用

文章目录 Nacos 配置管理一、统一配置管理1、在Nacos 中添加配置文件2、从微服务拉取配置3、配置实现步骤&#xff08;1&#xff09;引入 nacos-config 依赖&#xff08;2&#xff09;添加 bootstrap.yml&#xff08;4&#xff09;在 nacos 中添加配置 二、配置热更新1、配置热…...

重发布与路由策略

华子目录 重发布重发布条件重发布配置规则重发布名词配置命令ospf往rip重发布&#xff08;重发布动态&#xff09;静态往rip重发布&#xff08;重发布静态&#xff09;直连往rip重发布&#xff08;重发布直连&#xff09;rip往ospf重发布&#xff08;重发布动态&#xff09;静态…...

57. 插入区间(C++题解)

57. 插入区间 插入区间 给你一个无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 示例 1&#xff1a; 输入&#x…...

【数据结构Java版】 初识泛型和包装类

目录 1.包装类 1.1基本数据类型以及它们所对应的包装类 1.2装箱和拆箱 1.3自动装箱和自动拆箱 2.什么是泛型 3.引出泛型 4.泛型类的使用 4.1语法 4.2示例 4.3类型推导 5.泛型是如何编译的 5.1擦除机制 5.2正确的写法 6.泛型的上届 6.1语法 6.2示例 …...

Spring中如何解决循环依赖问题的三种方法

什么是循环依赖问题 在 Spring 中&#xff0c;循环依赖问题指的是两个或多个 bean 之间相互依赖形成的闭环。具体而言&#xff0c;当 bean A 依赖于 bean B&#xff0c;同时 bean B 也依赖于 bean A&#xff0c;就形成了循环依赖。 循环依赖问题在 Spring 容器中是一个非常常…...

【ArcGIS Pro二次开发】(65):进出平衡SHP转TXT、TXT转SHP

最近一个小伙伴提了这么一个需求&#xff0c;需要把TXT和SHP进行互转。 这种TXT文件其实遇到了好几个版本&#xff0c;都有一点小差异。之前已经做过一个TXT转SHP的工具&#xff0c;但好像不适用。于是针对这个版本&#xff0c;做了互转的2个工具。 【SHP转TXT】 一、要实现的…...

Shell开发实践:服务器的磁盘、CPU、内存的占用监控

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…...

超详细 async和await 项目实战运用(附加文字解答+源码)

文章目录 问题描述async什么是 asyncasync 的作用async 的应用场景async 优点 await什么是 awaitawait 的作用await 的应用场景await 的优点async和 await结合使用 结束语 大家好&#xff01;又到了愉快的周末假期&#xff0c;今天是2023年9月3日|农历七月十九&#xff0c;我最…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...