URAL 1067. Disk Tree (STL vector 使用)
2013-08-09 18:46
323 查看
使用STL,这题就非常简单了。
#include <iostream> #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #include <stack> #include <map> #include <set> #include <list> #include <deque> #include <string> #define LL long long #define DB double #define SI(a) scanf("%d",&a) #define SD(a) scanf("%lf",&a) #define SS(a) scanf("%s",a) #define SF scanf #define PF printf #define MM(a,v) memset(a,v,sizeof(a)) #define REP(i,a,b) for(int (i)=(a);(i)<(b);(i)++) #define REPD(i,a,b) for(int (i)=(a);(i)>(b);(i)--) #define N 509 #define INF 0x3f3f3f3f #define EPS 1e-8 #define bug puts("bug") using namespace std; struct nod{ string name; vector<nod> L; nod(string c=""){name=c;} bool operator<(const nod t) const { return name<t.name; } }; int n; char ch ; int len; void dfs(int f,nod &ans) { if(f>=len) return ; char cc[29]; int cnt = 0; for(int i=f;i<=len;i++) { if(ch[i]=='\\'||ch[i]=='\0') { f = i+1; cc[cnt]='\0'; break; } cc[cnt++] = ch[i]; } string c = cc; int fin = -1; REP(i,0,(int)ans.L.size()) { if(ans.L[i].name==c) { fin = i; } } if(fin==-1) { fin = ans.L.size(); ans.L.push_back(nod(c)); } dfs(f,ans.L[fin]); } void format(nod &ans) { sort(ans.L.begin(),ans.L.end()); REP(i,0,(int)ans.L.size()) { format(ans.L[i]); } } void out(int k,nod &ans) { REP(i,0,(int)ans.L.size()) { REP(j,0,k) PF(" "); cout<<ans.L[i].name<<endl; out(k+1,ans.L[i]); } } int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif SI(n); nod ans; while(n--) { SS(ch); len = strlen(ch); dfs(0,ans); } format(ans); out(0,ans); return 0; }
相关文章推荐
- STL vector使用方法介绍
- 一个基于jQuery的树型插件(OrangeTree)使用介绍
- Tree组件使用指南之三:定制SelectionListener
- DevExpress.XtraTreeList.TreeList + Winform + Access2013 使用实例(一)
- tree命令的使用
- 使用js方式加载tree下拉树形列表
- 使用JDK1.7 java.nio.file.Files.walkFileTree方法遍历文件夹下的文件
- [zt]Flex 3: 构建高级用户界面 使用 Tree 控件4
- 性能优化——Tree-shaking 的使用
- ural 1108 Binary Apple Tree
- Bitmap 索引 vs. B-tree 索引:如何选择以及何时使用?——3-5
- EXTJS4.0 tree.Panel 使用了model 取值 问题
- 使用cmd中的tree命令生成目录树
- DevExpress的TreeList的使用
- DevExpress ASP.NET 使用经验谈(7)-ASPxTreeList控件使用
- 使用 Git + Dropbox + SourceTree 做 Source Code Management
- TreeCellRenderer使用方法简介
- 学习使用TreeView 控件的TreeNode 对象来获取选中了CheckBox的节点!
- 树形控件(Tree)的使用
- 使用行为树(Behavior Tree)实现游戏AI