#包括#包括#包括使用count_t=无符号long long;使用int_vec=std::vector;int_vec计数参数(int个数字){int_vec结果(数字,0);int _ vec this _ perm(数字);int_vec asc_subseq(数字,0);int_vec desc_subseq(数字,0);for(自动i=0;i<数字;++i)此术语[i]=i;做{count_t max_subseq_size=0;for(自动j=1;j<数字;++j){count_t asc_subseq_size=0;count_t desc_subseq_size=0;for(自动k=0;k<j;++k)if(本项[k]<本项[j]){如果(asc_subseq[k]>=asc_subseq_size)asc_subseq_size=asc_subseq[k]+1;}其他的如果(desc_subseq[k]>=desc_subseq_size)desc_subseq_size=desc_subseq[k]+1;asc_subseq[j]=asc_sSubseq_size;desc_subseq[j]=描述子项大小;auto mono_subseq_size=标准::最大值(asc_subseq大小,desc_subseq大小);if(max_subseq_size<mono_subseq大小)max_subseq_size=单子大小;}++结果[max_subseq_size];}while(next_permutation(this_perm.begin(),this_perm.end()));返回结果;}int主(){for(int num_nums=1;;++num_num){auto-subseqs=count_perms(num_nums);标准::cout<<num_nums<<“:”;for(int i=0;i<num_nums;++i){如果(i)标准::cout<<“,”;标准::cout<<subseqs[i];}标准::cout<<std::endl;}}