博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces 66C Petya and File System (实现)
阅读量:6325 次
发布时间:2019-06-22

本文共 1316 字,大约阅读时间需要 4 分钟。

模拟题,map搞一搞。要想清楚一个结点应该是要通过一个字符串找到下一个结点,题目保证所以文件夹非空,所以只要判断一个结点是不是叶子结点就可以判断它是不是文件,用了点c11的特性。

#include
using namespace std;typedef map
Node;map
::iterator it_id;const int maxnd = 1e4;Node nds[maxnd];int nds_cnt;#define MP make_pair#define fi first#define se secondinline int id(const string& s,Node& fa){ if((it_id = fa.find(s)) != fa.end()) return it_id->second; fa.insert(MP(s,++nds_cnt)); return nds_cnt;}int curFile,curFolder;void dfs(int u){ for(auto it: nds[u]){ if(nds[it.se].empty()) { curFile++; continue; } else curFolder++; dfs(it.se); }}#define cer(x) cout<
<
>s){ auto u = nds; u = nds+id(s.substr(0,1),*u); s.PB('\\'); for(int i = 3, j = 3; i < (int)s.size(); i++){ if(s[i] == '\\'){ u = nds+id(s.substr(j,i-j),*u); j = i+1; } } } int maxFolder = 0,maxFile = 0; for(auto it: nds[0]){ for(auto it2: nds[it.se]){ curFolder = curFile = 0; dfs(it2.se); maxFolder = max(maxFolder,curFolder); maxFile = max(maxFile,curFile); } } cout<
<<' '<
<

 

转载于:https://www.cnblogs.com/jerryRey/p/4784178.html

你可能感兴趣的文章
UICollectionViewFlowLayout使用示例
查看>>
java库中的具体的集合
查看>>
检查URL Protocol是否安装的项目
查看>>
如何在postgresql中模拟oracle的dual表,来测试数据库最基本的连接功能?
查看>>
ABP文档 - 嵌入的资源文件
查看>>
【iCore4 双核心板_ARM】例程三十一:HTTP_IAP_FPGA实验——更新升级FPGA
查看>>
在mac上命令行里面如何打开文本编辑器?
查看>>
在某公司工作一年的自我总结01
查看>>
通过Jetty搭建一个简单的Servlet运行环境
查看>>
装上了Fedora19
查看>>
BLDC之六种霍尔检测换相排序表
查看>>
JfreeCHart 异常:Chart image not found
查看>>
设计模式之——单例模式
查看>>
全志a13开发总结
查看>>
用 PS 调整服务器时间
查看>>
让工作自动化
查看>>
Lucene:为文本文件创建索引
查看>>
hive函数参考手册
查看>>
2019年川甘青三省三县迎新春文艺演出在四川阿坝县举行
查看>>
日本长崎市着手为和平祈念像重新上色
查看>>