塔子周赛(一)华为暑期实习-2024年4月10号场
- Status
- Done
- Rule
- IOI
- Problem
- 3
- Start at
- 2025-3-1 19:00
- End at
- 2025-3-1 20:30
- Duration
- 1.5 hour(s)
- Host
- Partic.
- 32
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
公有云的某个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尽可能小,如果答案有多个节点,返回索引最小的那个节点。请注意:从公网“下线”的节点,不会受到来自公网的攻击,但仍然可能被“可访问"的其他节点传递攻击。
输入的第一行是网络节点数量N 后续的N行,每行N个数字
v
,以空格分割,形成一个N×N的矩阵,表示网络节点组网的矩阵。 最后一行,输入exposed
数组,表示暴露在公网上的网络节点的编号列表数组元素不会重复。2≤N≤24
0≤v≤10
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
说明
1,3是公网暴露的节点
1,2,3三个节点是连通的,但相互访问需要考虑权限等级限制,例如从1节点登录,访问到2节点后,权限等级不足以访问3号节点
如果将1号节点从公网下线,那3号节点可以先访问2号在访问1号,此时R的值为3。如果将3号节点从公网下线,则只能通过1号节点访问到2号节点,而2号节点无法再访问3号节点,此时R的值为2,答案选择R值更小的公网节点下线方案,因此答案为3.
matrix
表示节点间的访问授权门槛:
matrix[i][j]=p(p>0)
表示从节点 i 到节点 j 需要在节点 i 上拥有至少 p 级权限;matrix[i][j]=0
表示不可访问。exposed
数组为所有直接暴露在公网的节点集合。若不下线某节点 x,攻击者可从所有其他暴露节点(初始权限为 10)发起多源 BFS/DFS,对可达节点进行“感染”。