【HDOJ】1504 Disk Tree
文件可以重名。先按字典序将路径排序,再过滤掉公共前缀。
其中的问题是'\'的ASCII比[A-Z0-9]大,将它替换为空格。否则字典序有问题。
1 /* 1504 */ 2 #include <iostream> 3 #include <string> 4 #include <map> 5 #include <queue> 6 #include <set> 7 #include <stack> 8 #include <vector> 9 #include <deque> 10 #include <algorithm> 11 #include <cstdio> 12 #include <cmath> 13 #include <ctime> 14 #include <cstring> 15 #include <climits> 16 #include <cctype> 17 #include <cassert> 18 #include <functional> 19 #include <iterator> 20 #include <iomanip> 21 using namespace std; 22 //#pragma comment(linker,"/STACK:102400000,1024000") 23 24 #define sti set<int> 25 #define stpii set<pair<int, int> > 26 #define mpii map<int,int> 27 #define vi vector<int> 28 #define pii pair<int,int> 29 #define vpii vector<pair<int,int> > 30 #define rep(i, a, n) for (int i=a;i<n;++i) 31 #define per(i, a, n) for (int i=n-1;i>=a;--i) 32 #define clr clear 33 #define pb push_back 34 #define mp make_pair 35 #define fir first 36 #define sec second 37 #define all(x) (x).begin(),(x).end() 38 #define SZ(x) ((int)(x).size()) 39 #define lson l, mid, rt<<1 40 #define rson mid+1, r, rt<<1|1 41 42 typedef struct path_t { 43 char s[84]; 44 int len; 45 46 friend bool operator< (const path_t& a, const path_t& b) { 47 return strcmp(a.s, b.s) < 0; 48 } 49 } path_t; 50 51 const int maxn = 505; 52 char SP[1005]; 53 path_t path[maxn]; 54 55 int main() { 56 ios::sync_with_stdio(false); 57 #ifndef ONLINE_JUDGE 58 freopen("data.in", "r", stdin); 59 freopen("data.out", "w", stdout); 60 #endif 61 62 int t, n; 63 int mlen, len; 64 int i, j, k; 65 char name[15]; 66 int beg, nspace; 67 char *s, *ss; 68 69 memset(SP, ' ', sizeof(SP)); 70 71 scanf("%d", &t); 72 while (t--) { 73 scanf("%d", &n); 74 for (i=0; i<n; ++i) { 75 scanf("%s", path[i].s); 76 path[i].len = strlen(path[i].s); 77 for (j=0; j<path[i].len; ++j) 78 if (path[i].s[j] == '\\') 79 path[i].s[j] = ' '; 80 path[i].s[path[i].len] = ' '; 81 } 82 sort(path, path+n); 83 rep(ii, 0, n) { 84 s = path[ii].s; 85 len = path[ii].len; 86 if (ii) { 87 ss = path[ii-1].s; 88 mlen = min(len, path[ii-1].len); 89 nspace = 0; 90 beg = 0; 91 for (i=0; i<=mlen; ++i) { 92 if (s[i] != ss[i]) 93 break; 94 if (ss[i] == ' ') { 95 nspace++; 96 beg = i + 1; 97 } 98 } 99 } else { 100 beg = 0; 101 nspace = 0; 102 } 103 104 i = beg; 105 j = 0; 106 while (i <= len) { 107 if (s[i] == ' ') { 108 SP[nspace] = '\0'; 109 name[j] = '\0'; 110 printf("%s%s\n", SP, name); 111 SP[nspace++] = ' '; 112 j = 0; 113 } else { 114 name[j++] = s[i]; 115 } 116 ++i; 117 } 118 } 119 if (t) 120 putchar('\n'); 121 } 122 123 #ifndef ONLINE_JUDGE 124 printf("time = %d.\n", (int)clock()); 125 #endif 126 127 return 0; 128 }
转载于:https://www.cnblogs.com/bombe1013/p/4964760.html
【HDOJ】1504 Disk Tree相关推荐
- 【数据结构】B-Tree, B+Tree, B*树介绍
[摘要] 最近在看Mysql的存储引擎中索引的优化,神马是索引,支持啥索引.全是浮云,目前Mysql的MyISAM和InnoDB都支持B-Tree索引,InnoDB还支持B+Tree索引,Memory ...
- 【HDOJ】4602 Partition
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...
- 【HDOJ】4699 Editor_天涯浪子_新浪博客
[题目] http://acm.hdu.edu.cn/showproblem.php?pid=4699 [报告] 模拟题吧,本身不是很难. 最初的想法是用Splay tree写,然后疯掉了.苏牛说2B ...
- 【HDOJ】4602 Partition_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...
- 【HDOJ】1008 Elevator_天涯浪子_新浪博客
[题目] http://acm.hdu.edu.cn/showproblem.php?pid=1008 [报告] 这是我在HDOJ里看到的最水的题目,至少目前为止. 题目里已经讲得很清楚了,模拟就能过 ...
- 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1022 [报告] 模拟,直接模拟一个栈的运行就行了. [程序] // Task: 1022 Train P ...
- 【HDOJ】1003 Max Sum_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1003 [报告] 既然是子区间加和问题,可以用减法来处理.比如求[5..10]的和,可以直接用[1..10 ...
- 【HDOJ】4768 Flyer_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=4768 [报告] 题目中已经说了,保证最多出现一个奇数,所以可以用异或的想法.把所有的数异或起来,如果最后 ...
- 【HDOJ】4704 Sum_天涯浪子_新浪博客
[题目] http://acm.hdu.edu.cn/showproblem.php?pid=4704 [报告] S(K)显然就是N的K正整数划分数.所以SUM{S(K),1<=K<=N} ...
- 【HDOJ】1015 Safecracker_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1015 [报告] 题目写的很长,忽略一系列废话,题意就是求一个方程v - w^2 + x^3 - y^4 ...
最新文章
- 使用内存盘 格式化文件系统以及部署ceph-osd
- 俄罗斯“木船”机器人系统将于2020年部署部队
- Android开发者指南(4) —— Application Fundamentals
- BZOJ 2326 数学作业(分段矩阵快速幂)
- 一句话设置当前控制器的view跟随键盘起伏,妈妈再也不用担心键盘挡住输入框了...
- WebDriver元素等待机制
- SAP Hybris Commerce里类似ABAP里的透明表设计
- 大学计算机专业高考听力,高考英语听力测试对考生听力策略反拨作用的研究
- 【计算机系统设计】实践笔记(5)插叙:内外有别之CPU和Memory
- 【AI算法模型评测】2 如何评价多标签分类模型的好坏?
- 论文推荐|Mask TextSpotter:An End-to-End Trainable Neural Network
- ubuntu如何调出python_ubuntu|linux下 如何用python 模拟按键
- 用java编写一个学生类
- 变频器按启动没反应_变频器按运行键电动机不转故障怎样维修
- 在你学习计算机的路上,哪些书籍对你的帮助最大?
- [现代控制理论]7_线性控制器设计_Linear Controller Design
- Openwrt:LuCI入门(一)
- 屏幕的单位如何计算机,如何查看您的计算机显示器有多少英寸
- 人力资源分析思维以及有必要学习数据分析吗?
- open judge 内排序:Freda的越野跑