Vijos / 题库 /1622/文件查找(HOI)

描述

WINDOWS是一个很庞大的操作系统(当然啦,看占的硬盘空间就知道了),比如说,它的文件查找系统。现在,请你用PASCAL或者C或者C++模拟一下这个操作过程。为了降低难度,所有的文件夹名和文件名都是小写和数字,且不考虑盘符,而且也不会有WINDOWS禁止出现在文件名中的字符。同时,为了增加难度,每个文件夹内可能有重名的文件(夹)。当然,不能让用户等太久,你的程序要在1秒内找到用户要的文件。

格式

输入格式

输入文件filesearch.in包含多行,第一行是用户查找的文件名,该文件名不会含WINDOWS禁止出现在文件名中的字符,一定带符号”.”;第二行开始输入一个或多个文件夹的相关信息。文件夹的相关信息用以下格式输入:
文件夹名(中间无空格,且无符号“.”(小数点))+ 一个空格+文件夹内的文件数(包括文件夹),如果文件夹内还有子文件夹,换行后先输入该子文件夹内容再输入父文件夹内的其他文件夹或文件。每个文件名都带符号“.”。具体请看样例。

输出格式

输出所查找文件的路径,一定在至少一个文件夹的目录下。以WINDOWS地址的表示方法表示(“\”),如果有多个文件,按输入时的顺序输出。每输出一个文件的路径换一行。

样例1

样例输入1

hoi.pas
hoi 2
hoi 0
hoi.pas
hoi.pas

样例输出1

hoi\hoi.pas
hoi.pas

样例2

样例输入2

chroi.pas
chroi 2
hoi 1
chroi.pas
chroi 1
hoi.pas

样例输出2

chroi\hoi\chroi.pas

限制

各个测试点1s

提示

【数据范围】
对于50%的数据,输入文件的行数小于100。
对于100%的数据,输入文件的行数小于3000,且每行均少于25个字符。

来源

HOI 2009

递归:

string find函数:

find函数的返回值是整数,假如字符串存在包含关系,其返回值必定不等于npos;但如果字符串不存在包含关系,那么返回值就一定是npos。

网络来源:https://blog.csdn.net/cheer_zhang/article/details/77455704

#include<iostream>
#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
#include<vector>
#define N 2000
using namespace std; void in(int &x){
register char c=getchar();x=;int f=;
while(!isdigit(c)){if(c=='-') f=-;c=getchar();}
while(isdigit(c)){x=x*+c-'';c=getchar();}
x*=f;
} string an,s,ans[N];
string S[N];
bool flg=;
void dg(int cnt){
s="";
while(cin>>s) break;
if(s=="") {flg=;return;}
S[cnt]=s;
int l=s.length();
if(s.find('.')!=string::npos){
if(s==an){
for(int i=;i<=cnt-;i++) cout<<S[i]<<"\\";
cout<<an<<"\n";
}
}
else {
int p;
cin>>p;
for(int i=;i<=p;i++)
dg(cnt+);
}return;
}
int main()
{
cin>>an;
while(){
dg();
if(flg) break;
}return ;
}

最新文章

  1. PHP中计划任务
  2. 关于Swift中实现Lazy initialize的方式
  3. 遍历id,根据id作为条件循环查询。
  4. java 数据结构 栈的实现
  5. .net core CLI(创建VueJS||Angular结合的项目)
  6. linux虚拟机下解压文件
  7. js定时器之setTimeout的使用
  8. C++ Primer 有感(重载操作符)
  9. Redis使用单进程单线程方式的优缺点分析
  10. 用.net写Textbox控件关于数字的判断的二则方法
  11. JSON的介绍与细节
  12. centos服务器监控 服务器虚拟机里面的客户端zabbix-agent安装
  13. SWIG 的应用(一)
  14. SPL接口学习总结
  15. splash 安装
  16. sqlserver 模糊查询,连表,聚合函数,分组
  17. js提高篇
  18. 基于Python的轻量级RPC的实现
  19. ef SQL Server 版本不支持数据类型“datetime2”
  20. [转]tppabs是什么?如何去除tppabs?

热门文章

  1. HDU 5305 Friends(dfs)
  2. Date类型转换为Integer类型
  3. wordpress 配置(ubuntu)---修改 linux hostname
  4. 写web项目注意事项
  5. P5180 【模板】支配树
  6. POJ2352 Stars 树状数组
  7. JSP-Runoob:JSP 日期处理
  8. windows 多mysql 实例
  9. 43. ExtJs控件属性配置详细
  10. JavaScript 中String和int互相转换