Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111144 | 爱新觉罗·赵文卿·传统美德 | 递增子序列 | C++ | 输出格式错误 | 50 | 20 MS | 30540 KB | 1163 | 2023-11-18 10:49:53 |
#include<bits/stdc++.h> using namespace std; int n; int a[1000010]; int dp[1000010]; bool b[5001][5001]; int c[1000010]; int cnt=1; bool flag=0; void dfs(int step){ if(cnt>=2){ // if(flag==1) cout<<"\n"; flag=1; for(int i=1;i<cnt;i++){ cout<<a[c[i]]<<" "; } cout<<a[c[cnt]]; cout<<"\n"; } // cout<<"rp+=INF"<<endl; bool k[500001]; memset(k,0,sizeof(k)); for(int i=step+1;i<=n;i++){ if(b[step][i]&&k[a[i]]==0){ // cout<<"rp++"<<a[i]<<endl; k[a[i]]=1; cnt++; c[cnt]=i; dfs(i); cnt--; } } return; } int main(){ // freopen("text.out.txt","w",stdout); cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } memset(b,0,sizeof(b)); for(int i=1;i<=n;i++){ for(int j=i-1;j>=1;j--){ if(a[i]>=a[j]) b[j][i]=1; } } // for(int i=1;i<=n;i++){ // for(int j=1;j<=n;j++){ // cout<<b[i][j]<<" "; // } // cout<<endl; // } for(int i=1;i<=n;i++){ // memset(k,0,sizeof(k)); memset(c,0,sizeof(c)); c[1]=i; cnt=1; dfs(i); // cout<<endl; } return 0; } /* 4 6 4 6 7 4 6 7 7 4 7 4 7 7 6 7 6 7 7 7 7 4 6 4 6 7 4 6 7 7 4 7 4 7 7 6 7 6 7 7 7 7 */