Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35057 | 方巾予 | 【S】T1 | C++ | 通过 | 100 | 428 MS | 196864 KB | 611 | 2024-11-26 15:06:35 |
#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; }