NOIP 2001 普及组 复赛 求先序排列
2017-05-03 22:01
253 查看
NOIP 2001 普及组 复赛 求先序排列
1.初赛,这种题目做得多了去,但要上机写代码,突然捱了,尽然觉得有些困难。
2.不过,经验告诉我们,能用笔模拟出,那么也能用计算机算出。
3.目前,就是要靠手动模拟,找出规律。
4.//p1030 求先序排列
//http://blog.csdn.net/yuyanggo/article/details/47955837此文写得不错。
//根据上述文章进行编写,发现处理字符串位置时,十分困难,决定对程序进行改进,以方便编写为主
//经过一番调试,样例通过,提交AC。自认为本人代码量虽然大了些,但从编写角度,更容易写出,所谓“青出于蓝”
#include <stdio.h>
#include <string.h>
char in[10],post[10];//in中序 post后续
void pre(char *s1,char *s2){//s1中序 s2后序
char *p,s3[10],s4[10];
int k,len,i;
len=strlen(s1);
if(len==0)
return;
printf("%c",s2[len-1]);
p=strchr(s1,s2[len-1]);
k=p-s1;//此处忘记修改 k=p-in; 查了会
for(i=0;i<k;i++)
s3[i]=s1[i];
s3[i]='\0';
for(i=0;i<k;i++)
s4[i]=s2[i];
s4[i]='\0';
pre(s3,s4);//左子树
for(i=0;i<len-k-1;i++){
s3[i]=s1[k+1+i];
}
s3[i]='\0';
for(i=0;i<len-k-1;i++)
s4[i]=s2[k+i];
s4[i]='\0';
pre(s3,s4);//右子树
}
int main(){
int len;
scanf("%s%s",in,post);
pre(in,post);
return 0;
}
1.初赛,这种题目做得多了去,但要上机写代码,突然捱了,尽然觉得有些困难。
2.不过,经验告诉我们,能用笔模拟出,那么也能用计算机算出。
3.目前,就是要靠手动模拟,找出规律。
4.//p1030 求先序排列
//http://blog.csdn.net/yuyanggo/article/details/47955837此文写得不错。
//根据上述文章进行编写,发现处理字符串位置时,十分困难,决定对程序进行改进,以方便编写为主
//经过一番调试,样例通过,提交AC。自认为本人代码量虽然大了些,但从编写角度,更容易写出,所谓“青出于蓝”
#include <stdio.h>
#include <string.h>
char in[10],post[10];//in中序 post后续
void pre(char *s1,char *s2){//s1中序 s2后序
char *p,s3[10],s4[10];
int k,len,i;
len=strlen(s1);
if(len==0)
return;
printf("%c",s2[len-1]);
p=strchr(s1,s2[len-1]);
k=p-s1;//此处忘记修改 k=p-in; 查了会
for(i=0;i<k;i++)
s3[i]=s1[i];
s3[i]='\0';
for(i=0;i<k;i++)
s4[i]=s2[i];
s4[i]='\0';
pre(s3,s4);//左子树
for(i=0;i<len-k-1;i++){
s3[i]=s1[k+1+i];
}
s3[i]='\0';
for(i=0;i<len-k-1;i++)
s4[i]=s2[k+i];
s4[i]='\0';
pre(s3,s4);//右子树
}
int main(){
int len;
scanf("%s%s",in,post);
pre(in,post);
return 0;
}
相关文章推荐
- NOIP 2001 普及组 复赛 装箱问题
- NOIP2001-普及组复赛-第一题-数的计算
- NOIP2001-普及组复赛-第二题-最大公约数和最小公倍数问题
- NOIP 2001 普及组 复赛 数的计算
- noip2016普及组复赛总结
- 【NOIP2016】普及组复赛赛后总结
- NOIP2016普及组复赛解题报告
- 【蒻爆了的NOIP系列--普及组复赛】(5)NOIP2014普及组复赛题解
- NOIP 2013 普及组 复赛 level 车站分级
- 【递归】Vijos P1132 求二叉树的先序序列(NOIP2001普及组第三题)
- NOIP2014-普及组复赛-第二题-比例简化
- NOIP2016普及组复赛广东省一等奖名单及排名
- NOIP2012-普及组复赛-第一题-质因数分解
- noip2001 求先序排列 (已知中序+后序,求解先序 ;分治)
- 【蒻爆了的NOIP系列--普及组复赛】(3)NOIP2012普及组复赛题解
- NOIP2012普及组复赛解题报告
- NOIP2014普及组复赛子矩阵解题报告
- NOIP2014-普及组复赛-第三题-螺旋矩阵
- NOIP-2016-普及组 复赛题解
- NOIP2016普及组复赛第一题的ACC程序加题解pascal