社区讨论
main return value 3求助
学术版参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m1jegfj0
- 此快照首次捕获于
- 2024/09/26 22:38 去年
- 此快照最后确认于
- 2025/11/04 18:43 4 个月前
代码
CPP#include<bits/stdc++.h>
using namespace std;
//0->in, 1->pop
int ans=0;
void wenhao(int x, int y, stack <int>zhan) {
cout << x << ' ' << y << ' ' << zhan.size() << '\n';
if (y==0) {
ans++;
return ;
}
if (zhan.empty()) {
zhan.push(1);
wenhao(0,y-1,zhan);
zhan.pop();
}
zhan.pop();
wenhao(1,y-1,zhan);
zhan.push(1);
zhan.push(1);
wenhao(0,y-1,zhan);
}
int main() {
int n;
cin >> n;
stack <int>dsb;
wenhao(0,n,dsb);
cout << ans;
return 0;
}
题目
问题
好像是爆内存,我的电脑上没有编译错误,交上去是re的,运行到一半的时候会跳出来一提示:
CPPterminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
我是想模拟加递推解决题目,对于每个状态有pop和push的选择,并保持每个状态栈的长度不变(就是那一坨pop和push(1))
当每个状态栈空了的时侯push(1),当所有元素出栈时(y==0)ans++。
然后就出问题了
CPP3
0 3 0
0 2 1
1 1 0
0 0 1
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
--------------------------------
Process exited after 7.036 seconds with return value 3
请按任意键继续. . .
回复
共 4 条回复,欢迎继续交流。
正在加载回复...