【洛谷P1738】洛谷的文件夹【Trie】

Java实现 洛谷 P1738 洛谷的文件夹 题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现。 洛谷的网页端,有很多文件夹,文件夹还套着文件夹。 例如:/luogu/application/controller表示根目录下有一个名称为luogu的文件夹,这个文件夹下有一个名称application的文件夹,其中还有名为controller的文件夹。 每个路径的第1个字符总是’/’,且没有两... 阅读详情

题目大意:

题目链接:https://www.luogu.org/problemnew/show/P1738

给出 n n n个目录地址,为了使这些文件夹都存在,需要新建几个文件夹?


思路:

一眼看上去就是 T r i e Trie Trie。虽然暴力可过。

这道题其实就是不用查找的 T r i e Trie Trie。直接每次输出这棵树的节点数量就可以了。

每次找到这个目录的下一个 “ / ” “/” “/”,取出这一个文件夹的名称,再在当前已找到的节点上寻找是否有这个文件夹,如果有,那么就直接进去,否则新建一个文件夹。

我们每次读入新串的时候可以忽略这个字符串的第一个 “ / ” “/” “/”,并在这个字符串的结尾加上一个 “ / ” “/” “/”。

由于要用到字符串为下标的二维数组,所以可以用 m a p + p a i r map+pair map+pair。


代码:

#include <cstdio>
#include <string>
#include <iostream>
#include <map>
using namespace std;

string c;
int n,num;
map<pair<int,string>,int> trie;

void insert(string s)  //插入Trie
{
	int p=0;
	string k="";
	s+='/';  //末尾加上一个/
	for (int i=1;i<s.size();i++)  //i从1开始起到了忽略第一个/的作用
	 if (s[i]!='/') k+=s[i];  //还没读完这个文件夹名称
	 else
	 {
	 	if (!trie[make_pair(p,k)])  //没有这个文件夹
	 	 trie[make_pair(p,k)]=++num;  //新建
	 	p=trie[make_pair(p,k)];
	 	k="";
	 }
	printf("%d\n",num);
}

int main()
{
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		cin>>c;
		insert(c);
	}
	return 0;
}
LaMAR数据集下载和使用流程 LaMAR数据集 阅读详情

相关推荐

高通CamX架构解析(一)——核心组件与数据流设计

本文深入解析高通CamX相机架构的核心组件与数据流设计。CamX采用模块化与数据驱动思想,将复杂处理流程拆解为Node、Pipeline、Session等独立组件,并通过CHI层实现硬件接口与定制功能的分离。文章详细阐述了从请求下发到结果返回的完整数据流,并提供了实用的调试与分析指南,帮助开发者理解这一高效、灵活的现代相机架构。

k8l9m0n的博客 235

算法:01-Trie字典树 洛谷 字符串 P2922 [USACO08DEC] Secret Message G

思路:将信息按01字典树建图,然后计算经过的数量和终点的数,不过这里我这里是这么算的,就是如果终点加1了,那就不加这个点的经过,这样方便后面计算,然后将暗语放进去检查,遍历过程中加上终点的数量,说明信息是暗语的前缀数量,然后到终点时加上终点经过的数量,说明暗语是信息前缀的数量。

2502_90699592的博客 223

java modbus通讯协议_Modbus通 讯 协 议

电磁流量计Modbus通 讯 协 议(版本号:9000-K V9.1.1)2020年01月01日通讯协议针对KFD电磁流量计工业应用设计,版本:9000-K V9.1.1,该版本主要用于实时数据采集、流量测量、流量累计控制及部分参数的修改。一、主机系统通讯部件要求1.国际标准RS-485通讯接口部件,不小于11Bytes 的通信缓冲区(FIFO),支持1200、2400、4800、96...

weixin_39956612的博客 1011

luogu 3907 :Trie 树板子(dalao勿看,水的辣眼睛)

题意:给出N( 题解:对N个串造一个Trie树,然后拿着T在树上跑,如果T串失败了,那么直接退出。T匹配到了某个Node,然后从这个Node开始DFS就可以了。 Code: #include using namespace std; const int MAX = 1000; char buff[MAX],delta[MAX]; struct Trie_Node{ Trie_N

辣鸡葫芦娃 1137

5分钟搞定三网话费余额查询:手把手教你用PHP+HTML搭建查询系统(含API调用避坑指南)

本文详细介绍了如何使用PHP+HTML快速搭建三网话费余额查询系统,涵盖API调用避坑指南、前端UI设计及性能优化。通过统一处理移动、电信、联通三大运营商接口差异,实现高可用查询功能,并提供安全防护与生产部署建议,帮助开发者高效构建稳定可靠的话费查询工具。

weixin_29016833的博客 259

GAN网络(论文阅读):Generative Adversarial Nets

当判别器效果比较好时,D(G(z))值为0,则log(1-D(G(z)))值为0,当判别器效果不好,会输出一个大于0 的数,则log(1-D(G(z)))值就为一个负数,在极端情况下,会得到负无穷大,此时判别失误。在价值函数的第二项中存在问题,在早期G比较弱的时,生成的数据和真实数据相差很大,D就容易训练的比较好,很容易区分,就会导致log(1-D(G(z)))变成0 ,这样很难求梯度来优化G,所以更新G时,将优化函数改为log(D(G(z)))。最终使G赢,即G生成的数据D判别不出来。

m0_54248968的博客 2293

洛谷每日一题(P1481 魔族密码)字典树解法

用字典树+深度优先 ,来破解魔族的密码?先来了解一下什么是字典树吧!

weixin_70448721的博客 1780

点击率预测的贝叶斯平滑

概述 电商领域中经常需要计算或预测一些转化率指标,如最典型的CTR(点击率,Click-Through Rate)。这些转化率可以是模型的预测值,也可以作为模型的特征(feature)使用。以商品点击率预测为例,CTR的值等于点击量(Click)除以曝光量(Impression或Exposure)。以rr表示点击率, r=CI(1)r=\frac{C}{I} \tag{1}. 但在实际应

小平子的专栏 3万+

P1738 洛谷的文件夹

例如:/luogu/application/controller/ 表示根目录下有一个名称为 luogu 的文件夹,这个文件夹下有一个名称 application的文件夹,其中还有名为 controller的文件夹。kkksc03 想好了很多应该有的文件夹路径名。输出应包含 N 行,每行 1 个正整数,第i 行输出若要使第 1 个路径到第 ii 个路径存在,最少需要新建多少个文件夹。每个路径的第 1 个字符总是/,且没有两个连续的 /,最后的字符不是 /。洛谷的网页端,有很多文件夹,文件夹还套着文件夹。

xingheyan的博客 523

30、电力生产系统中的效率测量

本文探讨了如何使用数据包络分析(DEA)模型来评估电力生产系统的效率。文章详细介绍了电力生产系统的三个主要环节——发电、输电和配电,并通过多种DEA模型,如输入导向模型、输出导向模型以及基于松弛的SBM模型,展示了效率测量的方法和技术。同时,结合实际案例分析,说明了DEA模型在识别效率低下环节及提出改进建议方面的应用价值。

rgv2345678的博客 116

OpenCV-Python实战(3)——OpenCV中绘制图形与文本

OpenCV 是一个的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。本文介绍了 OpenCV 提供的与绘制图形和文本相关的函数。在图形方面,我们了解了如何绘制基本图形(直线、矩形和圆形等)以及高级图形(剪裁线、箭头、椭圆和多边形)。在文本方面,我们了解了如何绘制文本以及 OpenCV 库中的所有可用字体。

盼小辉丶的博客 2万+

洛谷P1738 洛谷的文件夹

原题目:点我 模拟即可,字符串处理麻烦点。如果没有找到子文件夹就新建文件夹,如果有就进入该文件夹。 提示:高能,指针+动态内存,用数组太low(在noip中用数组才是王道!) #include <iostream> #include <vector> #include <string> using namespace std; int fold...

weixin_30336061的博客 275

【DRAM存储器四十三】LPDDR5介绍--寻址

简要说明LPDDR5 X16、x8 die的寻址

highman110的博客 967

洛谷的文件夹(树形结构+DFS+字符串哈希)

洛谷的文件夹Luogu P1738题目描述kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现。 洛谷的网页端,有很多文件夹,文件夹还套着文件夹。 例如:/luogu/application/controller表示根目录下有一个名称为luogu的文件夹,这个文件夹下有一个名称application的文件夹,其中还有名为controller的文件夹。 每个

Stockholm_Sun的博客 630

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

洛谷P1738 洛谷的文件夹(java)

这是一道 普及+/提高的题,说起洛谷的题对于java选手来说,真的是太不友好,做不来只能去看c/c++的题解。。。。。。一言难尽,为了做一道题真的太难了 传送门: https://www.luogu.com.cn/problem/P1738 直接上代码: package algorithm.luogu; import java.util.*; /** * @author 小黎 * @date 2020/10/21 18:39 * @description emmm这道题给我的第一眼.

qq_43209102的博客 302

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

打卡信奥刷题(1076)用C++实现信奥 P1738 洛谷的文件夹

kkksc03 是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的 lzn 去实现。洛谷的网页端,有很多文件夹,文件夹还套着文件夹。表示根目录下有一个名称为luogu的文件夹,这个文件夹下有一个名称的文件夹,其中还有名为controller的文件夹。每个路径的第1个字符总是,且没有两个连续的,最后的字符不是。所有名称仅包含数字和小写字母。目前根目录是空的。kkksc03 想好了很多应该有的文件夹路径名。问题是,需要是使这些文件夹都存在,需要新建几个文件夹呢?

Loge谈信奥--一个专注于信奥人的博客 5788

[洛谷P1738]洛谷的文件夹

题目大意:给你n个路径,输入第i个路径时输出前i个路径一共有多少文件夹(根目录不算)。 解题思路:由于数据并不大,我们可以用字典树+STL_map储存每个文件夹的子文件夹,然后每次按照路径寻找即可。 注意文件夹名字可能为空,所以对于每个输入的路径,文件夹数量以读到的‘/’的数量为准。 注意动态开点会炸。 C++ Code: #include<map> #inc...

250

[洛谷]P1738 洛谷的文件夹 (#STL)

题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现。 洛谷的网页端,有很多文件夹,文件夹还套着文件夹。 例如:/luogu/application/controller表示根目录下有一个名称为luogu的文件夹,这个文件夹下有一个名称application的文件夹,其中还有名为controller的文件夹。 每个路径的第1个字符总是’/’,...

A.pro的博客 564

Luogu P1738 洛谷的文件夹

P1738 Luogu 发一个链表题解! 仅有24ms,排名第一哦~ 圆圈代表点,每个店有两个指针,一个指向自己兄弟(同级文件夹),另一个指向自己孩子(子文件夹),还有一个保存当前名字。 有点像二叉树孩子兄弟表示法…… 那么我们从根节点寻找。对于每个节点,先找他的兄弟有没有符合要求的当前级名字,如果有,转到该兄弟的孩子节点上;如果没有,那就新建一个,计数器+1。 代码: #include &lt...

weixin_30394251的博客 143

java i%10==3_Java实现 洛谷 P1008 三连击

public class Main {public static void main(String[] args){for(int i = 123; i <= 329; i++){int[] tmp = new int[10];int b = 2*i;int c = 3*i;tmp[i%10] ++;tmp[i/10%10] ++;tmp[i/100] ++;tmp[b%10] ++;tmp...

weixin_33268492的博客 2843

P1738洛谷的文件夹-树形结构-模拟

题目链接 题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现。 洛谷的网页端,有很多文件夹,文件夹还套着文件夹。 例如:/luogu/application/controller表示根目录下有一个名称为luogu的文件夹,这个文件夹下有一个名称application的文件夹,其中还有名为controller的文件夹。 每个路径的第1个字...

姬小野的博客 415

[NOIP2011提高组]Mayan游戏

题目:洛谷P1312、Vijos P1738、codevs1136。 题目大意:在一个7行5列的棋盘(左下角坐标0,0)上,有一些不同颜色的棋子。 规定某一时刻,连续三个横排或竖列的棋子颜色相同,则它们被消掉(同时满足条件的一起消掉,存在多个这样的情况有公共棋子时,所有的都消掉)。 然后有一种操作: 将一个棋子往左/右移动或和左边/右边的棋子交换。(左为-1,右为1) 规定棋盘...

412
上一篇: 【洛谷P1330】封锁阳光大学【BFS】
下一篇: 【JZOJ5775】农夫约的假期【模拟】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值