Kai’blog

主博客 | 势利纷华,近之而不染者洁,不近者亦洁,君子不立危墙之下。

P4837

日了啊,这道题每个输入中有多组输入,每处理完一组输入需要清空STL的stack类对象的啊。要是自己写的栈或许能想起来重新top=1,但是这用的STL现成的stack,就忘了while(!sk.empty())sk.pop();了,离谱。
好久好久好久都没发现原来是错在这里了,一直以为自己的dfs搜索哪里错了,结果是这么一个弱智错误,我要是再犯一次我就是真弱智了,下次绝不再犯。一组输入中包含多次问题询问是每次回答完问题要重新归零初始化!!!一定记住!!!

Code

#include <iostream>#include <stack> using namespace std; int q,n,s[100005],e[100005];stack<int> sk; int dfs(int i,int t){	if(t==n+1)	{		if(i==n+1)return 1;		else 		{			if(sk.top()==e[i])			{				sk.pop();				return dfs(i+1,t);			}			else return 0;		}	}	if(!sk.empty()&&sk.top()==e[i])	{		sk.pop();		return dfs(i+1,t);	}	else	{		sk.push(s[t]);		return dfs(i,t+1);	}} int main(){	scanf("%d",&q);	for(int i=1;i<=q;i++)	{		scanf("%d",&n);		for(int i=1;i<=n;i++)scanf("%d",&s[i]);		for(int i=1;i<=n;i++)scanf("%d",&e[i]);		if(dfs(1,1)==1)cout<<"Yes"<<endl;		else cout<<"No"<<endl;		while(!sk.empty())sk.pop();	}    return 0;}
posted @   Kai-G  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
Copyright © 2019-2020 拱垲. All rights reserved.
点击右上角即可分享
微信分享提示