社区讨论

有点疑问

P1155[NOIP 2008 提高组] 双栈排序参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi6we1un
此快照首次捕获于
2025/11/20 11:54
4 个月前
此快照最后确认于
2025/11/20 11:54
4 个月前
查看原帖
一开始我染色后是这么做的
CPP
while(!S1.empty()&&S1.top()==K)
      S1.pop(),printf("b "),K++;
while(!S2.empty()&&S2.top()==K)
      S2.pop(),printf("d "),K++;
其实就是把两个栈的出栈依次考虑 这样做只有30分
然后我就这样做
CPP
while((!S1.empty()&&S1.top()==K)||(!S2.empty()&&S2.top()==K)){
    if(!S1.empty()&&S1.top()==K)S1.pop(),printf("b ");
    else S2.pop(),printf("d ");
    K++;
}
相当于一起考虑,但是这样就是AC 大佬可不可以看一下这两种有什么区别吗

回复

3 条回复,欢迎继续交流。

正在加载回复...