T1
题目描述
首先,让我们来一道萌萌哒的并查集吧。
你有 \(n\) 个萌萌哒元素。每个元素都单独在一个集合中。同时,我们有 \(n - 1\) 个操作,每次合并两个元素所在的集合,保证合并前两个元素位于不同的集合。
现在有 \(m\) 个询问 \((x, y)\),每次询问需要你输出元素 \(x, y\) 第一次位于同一集合是第几次操作后。
输入格式
第一行两个数 \(n, m\)。
接下来 \(n - 1\) 行每行两个数 \(x, y\),表示合并操作。
接下来 \(m\) 行表示询问。
输出格式
对于每一个询问,输出一个数表示答案。
输入样例
3 3
1 2
2 3
1 1
1 2
1 3
输出样例
0
1
2
数据规模
对于 \(40\%\) 数据,\(n \leq 10000, m \leq 10000\)。
对于 \(100\%\) 数据,\(n \leq 10^5, m \leq 10^5\)。
T2
题目描述
然后再来一道裸裸的模板题。
给你两个 \(1 ~ n\) 排列,请求出它们的 LCS。
输入格式
第一行一个数 \(n\)。
第 \(2, 3\) 行分别 \(n\) 个数表示两个排列。
输出格式
一行表示答案。
输入样例
3
1 2 3
1 3 2
输出样例
2
数据规模
对于 \(20\%\) 数据,\(n \leq 1000\)。
对于 \(100\%\) 数据,\(n \leq 100000\)。
T3
题目描述
现在你要实现一个文件系统,支持以下操作:
cd Directory_Name
如果当前路径下有名为 Directory_Name
的文件夹,则进入该文件夹所对应的路径。
否则输出 No such directory!
。
cd ..
如果当前路径存在父路径,则返回父路径。
否则输出 No parent directory!
。
touch File_Name
如果当前目录下存在名为 File_Name
的文件则输出 File already exists!
,否则创建这样一个文件。
rm File_Name
如果当前目录下存在名为 File_Name
的文件则删除它,否则输出 No such file!
。
mkdir Directory_Name
如果在当前路径下存在名为 Directory_Name
的文件夹,则输出 Directory already exists!
,否则创建一个这样一个文件夹(当前路径不变)。
rmdir Directory_Name
如果在当前路径下存在名为 Directory_Name
的文件夹,则删除之,否则输出 No such directory!
。
ls
列出当前路径下所有的文件和文件夹,每一项占一行,按创建的先后顺序给出。
采用一下形式输出:
Item_Name <Type>
Type
为 D
(文件夹)或 F
(文件)
注意:同一路径下文件与文件夹可以重名,但同一路径下文件与文件,文件夹与文件夹不能重名。
初始时当前路径处于根路径下,无父路径。
输入格式
每个文件一组数据。
第一行为 \(Q\),表示有 \(Q\) 个操作。
接下来是 \(Q\) 行,每行输入为以上描述的操作之一。
文件与文件夹的名称为小写字母,且最长为 \(10\)。
输出格式
输出与操作对应
输入样例1
3
mkdir standy
touch totalfrank
ls
输出样例1
standy <D>
totalfrank <F>
输入样例2
6
mkdir standy
cd standy
touch totalfrank
cd ..
rm totalfrank
ls
输出样例2
No such file!
standy <D>
数据规模
对于 \(10\%\) 数据,\(Q \leq 10\)。
对于 \(100\%\) 数据,\(Q \leq 100\)。
标签:输出,Name,16,2024.9,校测,路径,样例,leq,文件夹 From: https://www.cnblogs.com/JPGOJCZX/p/18422885