试图使用queue代替数组存放 但是一塌糊涂 求助
查看原帖
试图使用queue代替数组存放 但是一塌糊涂 求助
603732
Traitorous_X楼主2022/11/1 13:52

RT

#include<bits/stdc++.h>
using namespace std;
#define rep(i,n,m) for(int i=n;i<=m;++i)
inline int read(void){
	int s=0;char c=getchar();
	while(c>'9'||c<'0') c=getchar();
	while(c<='9'&&c>='0'){s=(s<<3)+(s<<1)+(c^48);c=getchar();}
	return s;
}
int n,t=1,v;
queue<int> q;
void print(void){//这里没有问题 
	t=q.front();
	cout<<q.front();
	q.pop();
	while(!q.empty()){cout<<"+"<<q.front();q.pop();}
	cout<<"\n";
}
void dfs(int sum){
	t=q.empty()?t:q.front();
	rep(i,t,sum)
		if(i<n){
			q.push(i);
			if(sum-i==0) print();
			else dfs(sum-i);
		}
	
}
int main(){
	n=read();
	dfs(n);
	return 0;
} 
2022/11/1 13:52
加载中...