poj 2023 Choose Your Own Adventure 用队列广搜 用栈深搜 用递归深搜 三种方法均测试过

博客详细介绍了如何使用队列广搜、栈深搜以及递归深搜三种方法解决poj 2023题目的过程。题目要求在给定的测试数据中找到从以'C'开头,以'E'结尾且末尾为'HAPPY'的路径,并输出路径上的文字内容。通过不同的搜索策略,实现了路径的查找,其中重点探讨了递归深搜的实现方式。
摘要由CSDN通过智能技术生成

题目大意:输入一个整数n,表示有n组测试数据,

每组第一行输入一个整数x表示该组测试一共有x页,接下来输入x行,每行表示一页,

每页或者以C开头,或者以E开头,中间用引号括起一段文字,注意第一行必须以C开头,以C开头的末尾输入两个数字a,b表示该页完后可以跳转到第a页或第b页,

以E开头的末尾输入一个单词,或者是HAPPY或者是GRISLY(有且仅有一页以HAPPY结尾),

现在要求你根据输入找出以C开头以E结尾,且E的行末为HAPPY的路径,输出路径上每一页中间引号里面的内容,不包含引号。

用队列广搜:

#include<stdio.h>
#include<string.h>
char str[150][300];//原来的数组名为story,结果不能正常运行,story是系统保留字么?知道的回复一下
int queue[150],pre[150],re[150],ff,tt,aa,bb;//pre[i]存第i行的祖先
int main()
{
	int t,x,i,len,count=0,j;
	scanf("%d",&t);
	while(t--)
	{
		count++;
		scanf("%d",&x);
		getchar();
		for(i=1;i<=x;i++)
			gets(str[i]);//读入内容
		queue[0]=1;//第一行入队
		memset(pre,0,sizeof(pre));
		ff=tt=0;//ff表示对头tt表示结尾
		while(1)
		{
			len=strlen(str[
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值