10分求条
查看原帖
10分求条
1341329
qyc110310楼主2025/8/4 14:12
#include<bits/stdc++.h>
using namespace std;
set<vector<int> > ans;
void cam(vector<int> a,bool flag) {
    if(!flag){
       ans.insert(a);
       return;
    }
    bool flagg=false;
    for(int i=0;i<a.size()-1;i++) {
        if (a[i]<a[i+1]) {
            vector<int> aa=a;
            aa.erase(aa.begin()+i+1);
            cam(aa,true);
            flagg=true;
            vector<int> pa=a;
            swap(pa[i],pa[i+1]);
            cam(pa,true);
            flagg=true;
        }
    }
    if (!flagg) {
        ans.insert(a);
    }
}
int main() {
    int n;
    cin>>n;
    std::ios_base::sync_with_stdio(false);
    vector<int> a(n);
    for(int i=0;i<n;i++) {
        cin>>a[i];
    }
    cam(a,1);
    cout<<ans.size()%998244353<<endl;
    return 0;
}
2025/8/4 14:12
加载中...