Untitled
unknown
plain_text
a year ago
2.3 kB
5
Indexable
#pragma GCC optimize("O3") #pragma GCC optimize ("unroll-loops") #pragma GCC optimize ("Ofast,no-stack-protector", "omit-frame-pointer", "inline", "-ffast-math") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,fma,popcnt,abm,mmx,avx") #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; #define fi first #define se second #define pp push_back #define all(x) (x).begin(), (x).end() #define Ones(n) __builtin_popcount(n) #define endl '\n' #define mem(arrr, xx) memset(arrr,xx,sizeof arrr) #define PI acos(-1) //#define int long long #define debug(x) cout << (#x) << " = " << x << endl void Gamal() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); #ifdef Clion freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout); #endif } int dx[] = {+0, +0, -1, +1, +1, +1, -1, -1}; int dy[] = {-1, +1, +0, +0, +1, -1, +1, -1}; const double EPS = 1e-9; const ll OO = 0X3F3F3F3F3F3F3F3F; const int N = 1e5 + 5, INF = INT_MAX, MOD = 1e9 + 7, LOG = 17; int cnt[1 << LOG],a[N],vid; pii dp[LOG][1 << LOG][2]; int vis[LOG][1 << LOG][2]; pii slv(int bit,int msk,int odd){ if(!~bit){ if(odd)return {cnt[msk],cnt[msk]}; else return {0,cnt[msk]}; } pii &ret = dp[bit][msk][odd]; if(vis[bit][msk][odd] == vid) return ret; vis[bit][msk][odd] = vid; ret = slv(bit-1,msk,odd); if(msk >> bit & 1){ pii y = slv(bit-1,msk ^ (1 << bit),odd ^ 1); ret.fi += y.fi + (!odd) * y.se; ret.se += y.se; } else{ pii y = slv(bit-1,msk ^ (1 << bit),odd); ret.fi += y.fi + y.se; ret.se += y.se; } return ret; } void solve() { int n;cin >> n; for (int i = 0; i < n; ++i) { cin >> a[i]; cnt[a[i]]++; } vid++; int ans = 1e9; for (int msk = 0; msk < 1 << LOG; ++msk) { ans = min(ans,slv(LOG - 1,msk,false).first); } cout << ans << endl; for (int i = 0; i < n; ++i) { cnt[a[i]]--; } } signed main() { Gamal(); int t = 1; cin >> t; while (t--) { solve(); } }
Editor is loading...
Leave a Comment