Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
108603 | 吴悠 | 全排列问题 | C++ | 运行出错 | 0 | 0 MS | 240 KB | 720 | 2023-11-04 09:06:28 |
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; int n,s,total; int mem[10001]; bool judge(){ s=sizeof(mem); int sum=0; for(int i=0;i<s;i++){ sum+=mem[i]; } if(sum==n){ return true; } else return false; } void print(){ for(int i=0;i<s-1;i++){ cout<<n<<"="<<mem[i]<<"+"; } cout<<mem[s-1]<<endl; } void dfs(int m){ int id=0; if(judge()==true){ sort(mem,mem+s); print(); memset(mem,0,s); total++; return ; } for(int i=1;i<=n-1;i++){ mem[id++]=i; dfs(i); } } int main(){ freopen("split.in","r",stdin); freopen("split.out","w",stdout); cin>>n; dfs(n); cout<<"total="<<total<<endl; return 0; }