Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
35038 LYLAKIOI 【S】T1 C++ 通过 100 1371 MS 295160 KB 1063 2024-11-26 14:00:06

Tests(21/21):


#include<bits/stdc++.h> #define up(i,l,r) for(int i=(l);i<=(r);++i) #define down(i,l,r) for(int i=(l);i>=(r);--i) #define pi pair<int,int> #define p1 first #define p2 second #define m_p make_pair #define p_b push_back using namespace std; typedef long long ll; inline ll read(){ ll x=0;short t=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')t=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*t; } int n,a[50],t[50],dp[1<<24]; short Log_2[1<<24]; ll sm[1<<24]; #define ppc __builtin_popcount void slv(){ n=read();up(i,1,n)a[i]=read(); up(i,0,n-1)t[i]=a[i+1]-a[i]; up(i,2,(1<<n)-1)Log_2[i]=Log_2[i>>1]+1; up(i,0,(1<<n)-1){ if(i){ int x=i&(-i);sm[i]=t[Log_2[x]]+sm[i^x]; } up(j,0,n-1)if((i>>j)&1)dp[i]=max(dp[i],dp[i^(1<<j)]+(sm[i]==0)); } cout<<n-dp[(1<<n)-1]; }int main(){ //freopen("cloud.in","r",stdin); //freopen("cloud.out","w",stdout); slv(); fclose(stdin); fclose(stdout); return 0; }


测评信息: