Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
137423 林扬泉 递增子序列 C++ 解答错误 0 0 MS 272 KB 1061 2024-03-10 14:02:19

Tests(0/2):


#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N]; int r[N]; int n; int kk,kkk; void jdfs(int k,int la,int len){ if(len>=2){ kk++; } set<int> s; for(int i=k;i<=n;i++){ if((len==0||a[i]>=la)&&s.find(a[i])==s.end()){ s.insert(a[i]); r[len+1]=a[i]; jdfs(i+1,a[i],len+1); } } } void zdfs(int k,int la,int len){ if(len>=2){ kkk++; printf("["); for(int i=1;i<len;i++){ printf("%d,",r[i]); } if(kkk<kk){ printf("%d],",r[len]); } else{ printf("%d]",r[len]); } } set<int> s; for(int i=k;i<=n;i++){ if((len==0||a[i]>=la)&&s.find(a[i])==s.end()){ s.insert(a[i]); r[len+1]=a[i]; zdfs(i+1,a[i],len+1); } } } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } printf("["); jdfs(1,-10000,0); zdfs(1,-10000,0); printf("]"); return 0; }


测评信息: