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 ;
}

/ Vijos / 题库 / 1622 / 文件查找(HOI)的更多相关文章

  1. / Vijos / 题库 /1250 / 最勇敢的机器人

    / Vijos / 题库 /1250 / 最勇敢的机器人 借鉴博客:http://www.cnblogs.com/chty/p/5830516.html 背景 Wind设计了很多机器人.但是它们都认为 ...

  2. Vijos / 题库 / 输油管道问题

    背景 想念car的GF,car就出了道水题! 描述 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有n 口油井的油田.从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连.如果 ...

  3. OnlineJudge 离线题库采集

    过段时间要把以前的OJ换掉,我负责VirtualJudge的部分.需要用C与PHP写一个Linux下的VJudge. 在此之前,将以前写给自己学弟学妹用的OJ离线题库的采集程序改进了一下.支持国内一些 ...

  4. Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库

    http://www.cnblogs.com/Charltsing/p/OcrAnswerer.html 联系qq:564955427 最新版为v4.1版,开放一定概率的八窗口体验功能,请截图体验(多 ...

  5. 分享一个文件查找、替换制定的字符或数字之CS程序、附带源码

    首先就上操作流程图: 图--登陆界面.登陆密码:alidoing.com 图--界面说明(一看就懂) 图--文件查找到再替换 图--文件替换成功 图--替换后的文件 代码开始: 登陆的代码就非常简单. ...

  6. Linux题库练习

    转一个Linux的题库供自己学习使用(滑稽) 转自:http://www.linuxdiyf.com/view_202485.html 选择题1 在终端下输入mount -a命令的作用是:CA 强制进 ...

  7. leetcode题库

    leetcode题库 #题名题解通过率难度出现频率  1 两数之和     46.5%简单2 两数相加     35.5%中等3 无重复字符的最长子串     31.1%中等4 寻找两个有序数组的中位 ...

  8. linux - 文件查找及压缩

    文件查找: 1.  which    查找可以执行文件,只搜索$PATH里的目录 $ which ls /bin/ls which只搜索$PATH里的目录,如果搜索当前目录的文件是没有任何结果的 $ ...

  9. linux 文件查找和压缩工具

    文件查找 1,which命行查找可执行文件,which 只会搜索系统$PATH目录 2,whereis,查找可执行文件,并显示出此文件的man page文件,并且可以查找到系统的库目录 3,locat ...

随机推荐

  1. 模块化开发(二)--- seaJs入门学习

    SeaJS是一个基于CMD模块定义规范实现一个模块系统加载器   [CMD规范](https://github.com/cmdjs/specification/blob/master/draft/mo ...

  2. 让ListView回来原来的位置

    让ListView回到原来的位置 当从ListView中的某一个Item跳转到其他的Activity,进行操作之后,ListView可能需要刷新(重新加载数据源),这个时候ListView就会回到原始 ...

  3. hdoj--1205--吃糖果(规律)

     吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub ...

  4. java enum int String 相互转换

    1.  enum<->int enum -> int: int i = enumType.value.ordinal(); int -> enum: enumType b= e ...

  5. js产生随机数教程

    <script>   function GetRandomNum(Min,Max){   var Range = Max - Min;   var Rand = Math.random() ...

  6. php的类型转换

    转自:http://www.tianzhigang.com/article.asp?id=280 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int).(integer):转换成 ...

  7. Gym - 102059D 2018-2019 XIX Open Cup, Grand Prix of Korea D. Dumae 贪心+堆

    题面 题意:有3e5个人排成一列,然后Li,Ri表示每个人可以站在[Li,Ri]中的一个,然后M(1e6)个限制条件,某个人一定要在某个人前面,求一种合法方案,无解输出-1 题解:首先可以想到对于限制 ...

  8. SpringBoot2.0整合Redission

    Redisson是redis一个很强大的客户端,有兴趣的同学可以看我的下一篇文章,这篇主要讲如何整合,费话不多说,直接上干货(大牛请绕道) 首先创建RedissionConfig文件 import o ...

  9. RocketMQ(1)--helloworld

    双Master方式: 服务器环境 序号 IP 角色 模式 1 192.168.32.135 nameServer1,brokerServer1  Master1 2 192.168.32.136 na ...

  10. Mysql中timestamp用法详解

    前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的. 完整的. 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间.使用数字签名技术产生的数据, 签名的对象包括了 ...