Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
139851 陈家宝 递增子序列 C++ 通过 100 0 MS 276 KB 673 2024-03-26 13:46:02

Tests(2/2):


#include<bits/stdc++.h> using namespace std; int n,a[10000]; stack<int>s; map<stack<int>,bool>mp; bool check(int t){ for(int i=t+1;i<=n;i++)if(a[i]>=a[t])return false; return true; } void dfs(int t){ if(s.size()>=2&&!mp[s]){ stack<int>st=s; int *ans=new int[s.size()]; while(!st.empty()){ ans[st.size()]=st.top(); st.pop(); } for(int i=1;i<=s.size();i++) cout<<ans[i]<<(i==s.size()?"\n\n":" "); mp[s]=true; delete[] ans; } if(check(t)) return; for(int i=t+1;i<=n;i++){ if(a[i]>=a[t]){ s.push(a[i]); dfs(i); s.pop(); } } } int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; dfs(0); return 0; }


测评信息: