提交时间:2024-11-26 15:06:35
运行 ID: 35057
#include<bits/stdc++.h> using namespace std; int n; int a[110],d[110],s[1<<24|1],f[1<<24|1]; int lb(int x){ return x&(-x); } signed main(){ //freopen("test.in","r",stdin); scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); d[i]=a[i]-a[i-1]; } d[n+1]=-a[n]; for(int i=1;i<(1<<n);i++){ int g=__builtin_ctz(i); s[i]=s[i^lb(i)]+d[g+1]; int t=i; while(t){ f[i]=max(f[i],f[i^lb(t)]); t^=lb(t); } if(!s[i]) f[i]++; } printf("%d",n-f[(1<<n)-1]); return 0; }