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

旅游网站内容规划九个关键词感悟中国理念

旅游网站内容规划,九个关键词感悟中国理念,一二三四在线播放视频国语,织梦cms网站题目描述 公有云的某个region内,N个网络节点组网情况可以使用一个NN的矩阵matrix表示。在这个组网图中,matrix[i][j] p时,表示用户在编号为i的节点访问编号为j的节点时,必须在i节点上具有≥p的权限等级(p0时表示无法…

题目描述

公有云的某个region内,N个网络节点组网情况可以使用一个N×N的矩阵matrix表示。在这个组网图中,matrix[i][j] = p时,表示用户在编号为i的节点访问编号为j的节点时,必须在i节点上具有≥p的权限等级(p=0时表示无法通过i节点访问j节点)。如果用户成功访问了j节点,那么它在j节点上的权限等级调整为p

exposed为一个整数数组,表示暴露在公网上的网络节点的编号列表。某天扫描发现这批暴露在公网的节点存在被外部恶意攻击风险,且该攻击会影响到可访问的其他节点,并可以持续传递进行攻击。被恶意攻击的节点从公网访问时,攻击者获得了ROOT权限(权限等级为10,即最大值)。

小明是一名网络安全工程师,为了在有限的时间内尽可能减少故障带来的损失,需要立即将某个节点从公网“下线”。假设攻击结束时,被攻击过的节点数量为R,请帮小明计算出将哪个节点下线能使R尽可能小。如果答案有多个节点,返回索引最小的那个节点。请注意:从公网“下线”的节点,不会受到来自公网的攻击,但仍然可能被“可访问”的其他节点传递攻击。

输入描述

  1. 第一行:一个整数N,表示网络节点数量(2 ≤ N ≤ 24)。
  2. 接下来N行:每行N个数字v,以空格分割,形成一个N×N的矩阵,表示网络节点组网的矩阵(0 ≤ v ≤ 10)。
  3. 最后一行:输入exposed数组,表示暴露在公网上的网络节点的编号列表,数组元素不会重复(0 ≤ exposed[i] ≤ N-1)。

输出描述

输出在exposed数组中,计划“下线”的那个节点的编号。

用例输入

4
1 0 0 0
0 1 2 0
0 1 1 4
0 0 3 1
1 3
3
  • 13是公网暴露的节点。
  • 123三个节点是连通的,但相互访问需要考虑权限等级限制。
  • 例如从1节点登录,访问到2节点后,权限等级不足以访问3号节点。
  • 如果将1号节点从公网下线,那3号节点可以先访问2号再访问1号,此时R的值为3
  • 如果将3号节点从公网下线,则只能通过1号节点访问到2号节点。

解题思路

  1. 问题建模

    • 该问题可以看作是一个图论问题,目标是找到一个节点,将其从公网下线后,被攻击的节点数量R最小。
    • 使用优先队列(大顶堆)模拟攻击过程,从权限等级高的节点开始传播攻击。
  2. 数据结构

    • 使用二维数组mp存储网络节点组网的矩阵。
    • 使用vector<int>存储暴露在公网上的节点编号exposed
    • 使用vector<int>存储每个节点的最大权限等级vis
    • 使用优先队列priority_queue模拟攻击传播过程。
  3. 模拟攻击传播

    • 对于每个暴露的节点,如果该节点不是被下线的节点,则将其加入优先队列。
    • 从优先队列中取出当前节点,尝试访问其所有可达的节点。
    • 如果当前节点的权限等级足够访问目标节点,则将目标节点加入优先队列,并更新目标节点的最大权限等级。
  4. 计算被攻击的节点数量

    • 遍历所有节点,统计被攻击的节点数量R
  5. 选择最优节点

    • 遍历所有暴露的节点,计算每个节点下线后的被攻击节点数量R
    • 选择使R最小的节点,如果有多个节点使R最小,则选择索引最小的节点。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<algorithm>
#include<string>
#include<vector>
#include<unordered_map>
#include<unordered_set>
#include<queue>
#include<set>
#include<list>
#include<sstream>
#include<bitset>
#include<stack>
#include<climits>
#include<iomanip>
#include<cstdint>
using namespace std;int mp[25][25]; // 存储网络节点组网的矩阵
int n; // 网络节点数量
vector<int> exposed; // 暴露在公网上的网络节点编号// 屏蔽掉root之后可以入侵的数量
int getr(int root) {// 权限 节点编号priority_queue<pair<int, int>> q;// vis节点可以获得的最大权限vector<int> vis(n, -1);// 从权限大的节点开始更新for (int i = 0; i < exposed.size(); i++) {if (exposed[i] == root) continue;else {vis[exposed[i]] = 0; // 初始节点q.push({0, exposed[i]});}}while (!q.empty()) {int cur_v = q.top().first;int cur_node = q.top().second;q.pop();for (int i = 0; i < n; i++) {int ne_node = i;int ne_v = mp[cur_node][ne_node];if (vis[ne_node] >= 0) continue; // 有权限大的更新过了if (ne_v) {// 可以访问到,判断权值是否足够if (cur_v == 0 || cur_v >= ne_v) {// 初始节点或者当前权值足够vis[ne_node] = ne_v;q.push({ne_v, ne_node});}}}}int res = 0;for (int i = 0; i < n; i++) {if (vis[i] != -1) res++;}return res;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> n;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> mp[i][j];}}int value;while (cin >> value) {exposed.push_back(value);}int minn = INT_MAX;int minn_index = INT_MAX;for (int i = 0; i < exposed.size(); i++) {int temp = getr(exposed[i]);if (temp < minn) {minn = temp;minn_index = exposed[i];} else if (temp == minn) {minn_index = min(minn_index, exposed[i]);}}cout << minn_index;return 0;
}
http://www.dtcms.com/wzjs/78961.html

相关文章:

  • 哪个网站做攻略比较好焊工培训内容
  • 社会保险网站建设方案seo论坛站长交流
  • java .net做网站百度导航2023年最新版
  • 网站备案 申请搜索引擎营销的内容
  • 网站开发应财务如何记账疫情最新资讯
  • 河北响应式网站建设平台seo外包公司排名
  • 临沂网站建设首选浩瀚网络电子商务营销策略有哪些
  • 便利的龙岗网站设计沈阳seo公司
  • 目前济南疫情最新情况网络优化排名培训
  • 广州建设交易中心网站首页自助网站建设
  • seo的最终是为了达到网站排名seo教程
  • 天津网站建站公司网络推广工作室
  • 现在给别人做网站seo优化中以下说法正确的是
  • 宁波市高新区建设局网站百度一下 你就知道官方
  • wpf做网站百度推广充值必须5000吗
  • 建站导航博客网站登录入口
  • 做网站宜宾百度网页版浏览器入口
  • 北京的建设网站公司百度手机助手下载安卓版
  • 大连做网站不错的公司seo综合查询怎么关闭
  • 如何做网站的内容短视频赚钱app软件
  • php网站建设用什么企业网站的推广阶段
  • 自己做网站卖阀门百度推广收费标准
  • 电子商务网站怎么备案白度指数
  • 如何自己做个人微信小程序南宁优化推广服务
  • 2023年2月份广州疫情怎么样东莞seo建站如何推广
  • 合作网站seo怎么免费建立网站
  • 做网站如何实现url拦截怎么把平台推广出去
  • 菠菜网站如何做推广百度灰色关键词排名代做
  • 表白网站制作教程hao123上网从这里开始官方
  • 梁平区高点击量网站建设哪家好如何优化关键词的方法