POJ 1057 FILE MAPPING

原创 2012年03月28日 16:52:04

1. 这道题根本不会做,直接看的别人的解体报告,看了别人的解题报告的算法说明,还是不会做,只好看代码了;

2. 这篇博客写得比我写得好(http://jovesky.info/blog/2011/08/12/poj-1057-file-mapping-c-edition/),我就是看人家的看懂的;

3. 递归+vector,一层套一层,以后还得看看怎么做的。现在思路会了,但是vector还是不会用,上午刚看了primer还是不会用,另外细节问题很繁琐,日后就是为了学递归也得再做一遍这道题。




#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

struct node
{
    vector<string> file;
    vector<node> dir;
    string name;
};
int end = 0;
void fileinput(node &now)
{
    string tmp;
    while (1)
    {
        cin >> tmp;
        if (tmp[0] == '#')
        {
            end = 1;
            break;
        }
        else if (tmp[0] == 'f')
            now.file.push_back(tmp);
        else if (tmp[0] == 'd')
        {
            node d;
            d.name = tmp;
            fileinput(d);
            now.dir.push_back(d);
        }
        else break;
    }
    sort(now.file.begin(), now.file.begin() + now.file.size());
    return;
}

void fileoutput(node now, int n)
{
    int i, j;
    for (i = 0; i < n; i++)
        cout << "|     ";
    cout << now.name << endl;
    for (i = 0; i < (int)now.dir.size(); i++)
        fileoutput(now.dir[i], n + 1);
    for (i = 0; i < (int)now.file.size(); i++)
    {
        for (j = 0; j < n; j++)
            cout << "|     ";
        cout << now.file[i] << endl;
    }
    return;
}



int main()
{
    int cases = 1;
    while (cases)
    {
        node root;
        root.name = "ROOT";
        fileinput(root);
        if (end)
            break;
        cout << "DATA SET " << cases << ':' << endl;
        fileoutput(root, 0);
        cases++;
        cout << endl;
    }
    return 0;
}


POJ 1057 FILE MAPPING

Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2217   Accepted: 1085 ...
  • y12345678904
  • y12345678904
  • 2016年08月08日 18:16
  • 84

[递归]poj 1057 FILE MAPPING

原题地址:这里写链接内容 这题也是递归解法。
  • sinat_21595363
  • sinat_21595363
  • 2016年06月03日 14:39
  • 659

poj 1057 FILE MAPPING(递归)

FILE MAPPING Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2564   A...
  • qq_27601815
  • qq_27601815
  • 2017年09月11日 14:24
  • 61

POJ 1057 FILE MAPPING 笔记

f开头的字符串表示文件,d开头的字符串表示目录。]表示目录的结束,根目录结束不需要]。...
  • woniupengpeng
  • woniupengpeng
  • 2017年05月09日 07:16
  • 156

POJ 1057 FILE MAPPING(文件结构图)

描述在计算机上看到文件系统的结构通常很有用。Microsoft Windows上面的”explorer”程序就是这样的一个例子。但是在有图形界面之前,没有图形化的表示方法的,那时候最好的方式是把目录和...
  • tp7309
  • tp7309
  • 2016年11月13日 01:09
  • 334

Mapping File

 内存映射文件之剖析                                                                              作者:xrbeck 内存...
  • feijj2002_
  • feijj2002_
  • 2007年05月02日 23:22
  • 6851

内存映射文件(Memory Mapping File)

感谢  http://blog.csdn.net/sszgg2006/article/details/8573348 http://doudouclever.blog.163.com/blog/s...
  • ljt350740378
  • ljt350740378
  • 2017年03月07日 17:35
  • 210

PAT(甲级)1057

1057. Stack (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B ...
  • Leonardo1897
  • Leonardo1897
  • 2015年09月26日 10:55
  • 150

PAT乙级1057 数零壹

1057. 数零壹(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程...
  • sinat_37273780
  • sinat_37273780
  • 2017年02月22日 16:34
  • 113

Mimetype to file extension mapping

Mimetype to file extension mapping Mimetype to file extension mapping « on: November 28, 2013...
  • u010154380
  • u010154380
  • 2017年05月06日 11:52
  • 710
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1057 FILE MAPPING
举报原因:
原因补充:

(最多只允许输入30个字)