A - 小女警的异世界之战
Time Limit:  1000  ms        Memory Limit:  65536  KB
Submit
Description
这一天,小女警花花,泡泡和毛毛来到终极Boss"Him"所在的异世界并准备与其决一死战,却被困在了他的城堡里。她们发现异世界是一个巨大的城堡。城堡由一个个大小不同的房间组成,房间有着以下的规则:
每个房间有且仅有一扇黄门,此外至多有一扇红门和一扇绿门:黄色代表通向更大的房间,绿色和红色代表通向更小的房间。很显然,如果你打开了一扇红/绿色的门,你会发现门的背面是黄色的,反之同理。
红色和绿色的门都是可以随意打开的,然而黄色的门要等到该房间其他门均被打开过,且该房间怪物已经被杀死时才能被打开。在成功穿过黄门后,这扇门就会消失。
每个房间都会有一个怪物,小女警可自由挑选打败怪物的时机而不影响其打开该房间的红/绿门。
三位小女警的起点就是一间较为特殊的房间,这个房间与正常房间的区别是黄门是特制的。为了解锁这个房间的特殊黄门,三位小女警必须分别依次探索这个房间的其他门,而每个小女警在探索时,怪物与门的状态都会重置。三位小女警的探索方式有着巨大的差别:
花花对红色有着狂热的痴迷,因此当她看见红门时,会暂时无视怪物而立刻冲进去,但是当所在房间没有红门时,她会恢复理智并优先将所在房间的怪物杀死,然后进入绿门(如果有的话)来解锁黄门。
泡泡有强烈的强迫症而且讨厌绿色,当她看到怪物时一定会将其杀死,然后她会优先开启红门,不得已时她才会进入绿门来解锁黄门。
毛毛有拖延症,因此她会优先去开她喜爱的红色的门,随后去开绿色的门,当其所在房间没有门可开时,她才会通过杀死怪物的方式解锁黄门并回去。
每个房间的怪物都有独一无二的名字,当小女警杀死怪物时,怪物的名字会按顺序被记录在日志上,现在花花和泡泡已经按规则探索过了这个城堡,并回到了出发点,毛毛借来了她们的日志以便预测她将会碰到的怪物的顺序,你能帮助她完成这个任务吗?
 
Input
数据有多组,每组数据以一个数字n(1<=n<=100)为开始,代表有n条记录,
接下来的两行分别是花花和泡泡的日志,分别包含了n个怪物的名字,用空格隔开。
n==0时,输入结束。
 
Output
输出一行毛毛的日志,怪物名字之间用空格隔开。
Sample Input
5
skeleton zombie spider bat witch
bat zombie skeleton spider witch 
0
Sample Output
skeleton spider zombie witch bat
Hint

-


本题前序中序已知,求后序
注意:class str{char s[MAXN]}s; 这个函数不能写printf("%s",s)要写s.s *不报错
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<functional>
#include<iostream>
#include<cmath>
#include<cctype>
#include<ctime>
#include<map>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (100000007)
#define MAXN (100+10)
#define MAXL (1000+10)
typedef long long ll;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return (a-b+(a-b)/F*F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
int n;
int h2[MAXN];
class str
{
public:
//  int i; char s[MAXL]; void mem(){s[0]=0;}friend bool operator<(str a,str b){return strcmp(a.s,b.s)<0; }friend bool operator==(str a,str b){return strcmp(a.s,b.s)==0; }
}s1[MAXN],s2[MAXN];map<str,int> h;
bool fl;
void dfs(int l1,int r1,int l2,int r2)
{if (l1<r1&&l2<r2){int p=h2[l2];int len1=p-l1;if (len1>0) dfs(l1,p-1,l2+1,l2+len1);if (r1-l1+1-len1-1>0) dfs(p+1,r1,l2+len1+1,r2);}if (fl) printf(" ");else fl=1; printf("%s",s2[l2].s);
}
int main()
{
//  freopen("A.in","r",stdin);
//  freopen("A.out","w",stdout);while(scanf("%d",&n)==1){h.clear();if (n==0) return 0;For(i,n) s1[i].mem(),s2[i].mem();For(i,n) scanf("%s",s1[i].s);For(i,n){h[s1[i]]=i;}For(i,n){scanf("%s",s2[i].s);h2[i]=h[s2[i]]; }fl=0;dfs(1,n,1,n);printf("\n");}return 0;
}

NOJ 2015年陕西省程序设计竞赛网络预赛(正式赛)(小女警的异世界之战-前序中序求后序)相关推荐

  1. 北航第十二届程序设计竞赛网络预赛题解

    本次比赛共有 401 个用户通过至少一道题目,平均通过 3 题,第一位做出全部题目的同学用时 45:26:37 . 如果有对题目的疑问或是见解,欢迎寄刀片给出题人. 预祝大家在决赛中取得好成绩!没有搜 ...

  2. 挑战程序设计竞赛_我系首次参加第六届中国大学生程序设计竞赛网络预选赛

    点击上方蓝字关注  「龙外信息工程系」 讲述有温度的故事    传递有态度的思想 2020年9月20日12时至17时,第六届中国大学生程序设计竞赛网络赛预选赛在杭州电子科技大学OJ成功举办,黑龙江外国 ...

  3. 2020年第十八届西电程序设计竞赛网络预选赛之Problem C 没人比我更懂 COVID-19

    题目描述 现在,一种高度危险的病毒袭击了学园都市,人们陷入危难之中. 作为蓝星上最无所不知的人,你对病毒基因了如指掌.为了拯救即将废弃的 校赛,行星防御理事会找到了你. 现在你必须找出病毒所有可能的变 ...

  4. 2020年第十八届西电程序设计竞赛网络预选赛之Problem B 祖玛 1

    题目描述 祖玛是一款著名的益智类游戏,玩家控制发射器发射小球,有三个或三个以 上颜色相同的小球相连即可消去,消去之后两边的小球会自动接在一起,若产 生了连续大于等于三个颜色相同的小球,还会继续消去. ...

  5. 2018中国大学生程序设计竞赛-网络选拔赛题解

    以下所有AC题解程序来自"仙客传奇"团队. A. Buy and Resell AC的C++语言程序: #include<iostream> #include<c ...

  6. 2022-BNUZ-IT节程序设计竞赛网络赛题解

    IT节程序设计竞赛-网络赛题目解析 A-纯阳之体 解析 ​ 本题是一个双指针问题,当然直接暴力也是可以做的.主要思想就是先求最长连续且不含重复字符的字串的长度.有了长度之后就可以再进行一次搜索,当长度 ...

  7. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)解题报告

    第八届"图灵杯"NEUQ-ACM程序设计竞赛个人赛(同步赛) 题目总结 A题 切蛋糕 题目信息 解题思路 如果我们将 1/k展开到二进制的形式,那么就可以计算出 需要 多少块1/( ...

  8. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛) 2021.1.30

    第八届"图灵杯"NEUQ-ACM程序设计竞赛个人赛(同步赛) B小宝的幸运数组 C上进的凡凡 D Seek the Joker I E Seek the Joker II H 数羊 ...

  9. 第十届ICPC陕西省程序设计竞赛题解(思路分析)

     目录 A.Tree B.Type the String C.Card D.Hash E.Guess The Number F.Cross Fire G.2d-lake H.Cute Rabbit I ...

最新文章

  1. 追求极致的AI·OS——AI·OS引擎平台
  2. 如何深拷贝一个对象数组?
  3. Java BigInteger类| isProbablePrime()方法与示例
  4. C语言弧长,在C ++中从给定角度的弧长?
  5. 使用PHP创建SOCKET服务
  6. Matlab符号数学(Symbolic Math with MATLAB)MATLAB解方程
  7. java初级学习04
  8. 从JDK 8到JDK 17,GC都有哪些进步?
  9. 优秀程序员是怎样提高敲代码的效率?有这些工具就够了!
  10. oracle让数据库不产生redo,imp过程如何减少redo产生
  11. MTK:GPIO的配置与接口说明
  12. java 成员初始化_静态成员及其初始化
  13. SaaS营销网站的组织结构
  14. 该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。
  15. 工厂模式简介和应用场景
  16. 树莓派PyQt5触摸屏软键盘调用实现
  17. PDC10与最后的恐慌者
  18. axios 的简单增删查改 使用json-server启动的josn
  19. Android视频编码--H264编码
  20. 2021年电赛E题解析数字模拟信号混合传输收发机(详细介绍)

热门文章

  1. 一款超好的省市区三级联动插件citypicher的使用(数据分从数据库获取或从js文件获取)
  2. 杭州师范大学钱江学院计算机专业分数线,分数线|杭州师范大学钱江学院2017-2018年分类专业分数线...
  3. 【飞鱼科技】最新社招信息
  4. 物联网专科专业必修课程_物联网应用技术专业介绍(专科)
  5. ubuntu系统找不到无线网络图标处理办法
  6. 严重: The web application [/] registered the JDBC driver [xxx.xxx.xxx] but failed to unregister ...
  7. System32下文件说明
  8. GlidedSky爬虫-验证码1
  9. python所用到的英语单词_用Python自制考研英语单词手册
  10. 机器学习之PAC学习框架