博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1057
阅读量:6999 次
发布时间:2019-06-27

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

简单题

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
#include 
#include
#include
#include
#include
using namespace std; int dcount; int n; char word[1005][50]; int father[1005]; int fa; int dir[1005][1005]; int num[1005]; int id[1005]; void ins(char *st) {
if (strcmp(st, "]") == 0) {
fa = father[fa]; return; } if (st[0] == 'f') {
dir[fa][num[fa]++] = n; return; } father[dcount] = fa; id[dcount] = n; fa = dcount++; } bool cmp(const int &a, const int &b) {
return strcmp(word[a], word[b]) < 0; } void print(int a, int d) {
for (int i = 0; i < a; i++) printf("| "); printf("%s\n", word[id[d]]); for (int i = d + 1; i < dcount; i++) if (father[i] == d) print(a + 1, i); for (int i = 0; i < num[d]; i++) {
for (int j = 0; j < a; j++) printf("| "); printf("%s\n", word[dir[d][i]]); } } int main() {
//freopen("t.txt", "r", stdin); strcpy(word[0], "ROOT"); int t = 0; while (scanf("%s", word[1]), strcmp("#", word[1]) != 0) {
t++; memset(num, 0, sizeof(num)); dcount = 1; n = 1; fa = 0; father[0] = -1; ins(word[n]); while (scanf("%s", word[++n]), strcmp("*", word[n]) != 0) ins(word[n]); for (int i = 0; i < dcount; i++) sort(dir[i], dir[i] + num[i], cmp); printf("DATA SET %d:\n", t); print(0, 0); putchar('\n'); } return 0; }

转载地址:http://vievl.baihongyu.com/

你可能感兴趣的文章
一代神机华为MateRS专为保时捷跑车70周年量身定制
查看>>
墨西哥输油管道爆炸事件死亡人数上升至100人
查看>>
“佩奇”刷爆朋友圈 “野猪”占领美术馆空间
查看>>
Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
查看>>
石锤 github 买 star 行为
查看>>
结合一个开源的底部弹出菜单组件来讲一下如何封装一个React Native组件
查看>>
jvm系列:Java GC 分析
查看>>
深入理解ES6--10.增强的数组功能
查看>>
设计模式在 TypeScript 中的应用 - 观察者模式
查看>>
创业公司小团队为什么要使用Docker
查看>>
异步社区两周年 - 技术图书免费送(活动已结束)
查看>>
Swift 中的 String 和 Substring 如何工作
查看>>
iOS 之 Protocol 协议 委托 代理 详解
查看>>
FMDB 使用方法
查看>>
Git使用笔记
查看>>
初识Scrapy框架+爬虫实战(7)-爬取链家网100页租房信息
查看>>
XXL-CRAWLER v1.1.0 发布了
查看>>
Spring Boot 中使用 Java API 调用 Elasticsearch
查看>>
HTTP/3 来啦,你还在等什么?赶紧了解一下
查看>>
一个合格的Webpack4配置工程师素养:第二部分
查看>>