2022-11-01个人周赛
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
#define rep(a, b, c) for(int (a)=(b);(a)<=(c);(a)++)
#define per(a, b, c) for(int (a)=(b);(a)>=(c);(a)--)
#define mset(var, val) memset(var,val,sizeof(var))
#define ll long long
#define int ll
#define fi first
#define se second
#define no "NO\n"
#define yes "YES\n"
#define eb emplace_back
#define endl "\n"
#define pii pair<int,int>
#define pll pair<ll,ll>
const int N = 2e5 + 5;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-8;
const double pi = acos(-1.0);
int a[N],under[N];
void solve() {
int n,ans=0;
cin>>n;
rep(i,1,n){
cin>>a[i];
under[i]=max(under[i-1],a[i]+1);
}
per(i,n-1,1){
under[i]=max(under[i],under[i+1]-1);
}
rep(i,1,n){
under[i]=(under[i]-a[i]-1);
dbg(under[i]);
ans+=under[i];
}
cout<<ans<<endl;
}
signed main() {
IOS;
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}
字典树
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
#define rep(a, b, c) for(int (a)=(b);(a)<=(c);(a)++)
#define per(a, b, c) for(int (a)=(b);(a)>=(c);(a)--)
#define mset(var, val) memset(var,val,sizeof(var))
#define ll long long
#define int ll
#define fi first
#define se second
#define no "NO\n"
#define yes "YES\n"
#define eb emplace_back
#define endl "\n"
#define pii pair<int,int>
#define pll pair<ll,ll>
const int N = 1e5 + 5;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-8;
const double pi = acos(-1.0);
int trie[N*35][2];
int cnt=1;
void insert(int x){
int p=1;
for(int i=30;i>=0;i--){
int now=(x>>i)&1;
if(!trie[p][now]) trie[p][now]=++cnt;
p=trie[p][now];
}
}
int search(int de,int p){
if(de<0) return 0;
if(!trie[p][0]) return search(de-1,trie[p][1]);
if(!trie[p][1]) return search(de-1,trie[p][0]);
return (1<<de)+min(search(de-1,trie[p][1]), search(de-1,trie[p][0]));
}
void solve() {
int n,x;
cin>>n;
rep(i,1,n){
cin>>x;
insert(x);
}
cout<<search(30,1)<<endl;
}
signed main() {
IOS;
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}

浙公网安备 33010602011771号