Submission #1116464

#TimeUsernameProblemLanguageResultExecution timeMemory
1116464NipphitchPancake (NOI12_pancake)C++14
20 / 25
1054 ms7132 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") using namespace std; const int N=1e5+5; const int INF=1e9+7; int n; vector <int> a,b; map <vector <int>,int> dp[10]; int rec(int d,vector <int> v){ if(v==b) return d; if(d==n) return INF; if(dp[d].find(v)!=dp[d].end()) return dp[d][v]; int res=INF; for(int i=0;i<n-1;i++){ reverse(v.begin()+i,v.end()); res=min(res,rec(d+1,v)); reverse(v.begin()+i,v.end()); } return dp[d][v]=res; } void slove(){ a.clear(); b.clear(); for(int i=0;i<10;i++) dp[i].clear(); cin >> n; for(int i=1;i<=n;i++){ int x; cin >> x; a.push_back(x); b.push_back(x); } sort(b.begin(),b.end(),greater <int>()); cout << rec(0,a) << "\n"; } signed main() { ios::sync_with_stdio(0); cin.tie(0); int tc; cin >> tc; while(tc--) slove(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...