• [洛谷P1738]洛谷的文件夹


    题目大意:给你n个路径,输入第i个路径时输出前i个路径一共有多少文件夹(根目录不算)。

    解题思路:由于数据并不大,我们可以用字典树+STL_map储存每个文件夹的子文件夹,然后每次按照路径寻找即可。

    注意文件夹名字可能为空,所以对于每个输入的路径,文件夹数量以读到的‘/’的数量为准。

    注意动态开点会炸。

    C++ Code:

    #include<map>
    #include<iostream>
    #include<cstdlib>
    #include<string>
    #include<cstdio>
    using namespace std;
    int n,p,wjj;
    string s,cx[1005];
    map<string,int>tree[70005];
    int main(){
    	wjj=0;
    	ios::sync_with_stdio(false);
    	cin>>n;
    	for(;n--;){
    		cin>>s;
    		int p=-1;
    		string nw="";
    		for(int i=0,l=s.length();i<l;++i)
    		if(s[i]=='/')cx[++p]=nw,nw="";else
    		nw+=s[i];
    		cx[++p]=nw;
    		int now=0;
    		for(int i=1;i<=p;++i){
    			if(!tree[now].count(cx[i])){
    				tree[now][cx[i]]=++wjj;
    			}
    			now=tree[now][cx[i]];
    		}
    		printf("%d
    ",wjj);
    	}
    	return 0;
    }
    
  • 相关阅读:
    虚函数
    类的继承
    析构
    构造
    枚举类型
    c++中的静态类型 static
    c++中的类
    sizeof和strlen的区别
    剑指36 二叉搜索书与双向链表
    剑指35 复杂链表的复制
  • 原文地址:https://www.cnblogs.com/Mrsrz/p/7756455.html
Copyright © 2020-2023  润新知