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;}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构