【编程题目 |200分】Directory 删除【2021, 2022 H1 考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【Directory 删除】
某文件系统中有 N 个目录,每个目录都一个独一无二的 ID。
每个目录只有一个父目录,但每个父目录下可以有零个或者多个子目录,目录结构呈树状结构。
假设,根目录的 ID 为 0,且根目录没有父目录,其他所有目录的 ID 用唯一的正整数表示,并统一编号。
现给定目录 ID 和其父目录 ID 的对应父子关系表[子目录 ID,父目录 ID],以及一个待删除的目录 ID,请计算并返回一个 ID 序列,表示因为删除指定目录后剩下的所有目录,返回的ID 序列以递增序输出。
注意
1、被删除的目录或文件编号一定在输入的 ID 序列中;
2、当一个目录删除时,它所有的子目录都会被删除。
输入描述
输入的第一行为父子关系表的长度 m;
接下来的 m 行为 m 个父子关系对;
最后一行为待删除的 ID。
序列中的元素以空格分割,参见样例。
输出描述
输出一个序列,表示因为删除指定目录后,剩余的目录 ID。
代码实现
C++解法一
#include<bits/stdc++.h> using namespace std; int main(int argc, const char **argv) { int n; int temp; int delete_value = 0; int delete_index = 0; vector<vector<int> > count; cin >> n;
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA
import java.util.*; public class Directory { public static TreeSet<Integer> treeSet = new TreeSet<>(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt();
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JavaScript
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。