Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
35974 daimo 【S】T4 C++ 运行超时 0 2000 MS 74056 KB 1027 2025-02-07 12:29:14

Tests(0/20):


#include<bits/stdc++.h> #define int long long using namespace std; map<pair<pair<int,int>,int>,int>f; int n; int num[1010]; void readin(){ cin>>n; for(int i=1;i<=n;i++)cin>>num[i]; sort(num+1,num+1+n); reverse(num+1,num+1+n); } int dfs(int l,int r,int s,int cost){ if(f[make_pair(make_pair(l,r),s)])return f[make_pair(make_pair(l,r),s)]; if(s>=1000000000000000)return 0x3f3f3f3f3f3f3f3f; if(l==r){ f[make_pair(make_pair(l,r),s)]=cost*num[l]; return cost*num[l]; }else{ int res=0x3f3f3f3f3f3f3f3f; for(int i=l;i<r;i++){ res=min(res,dfs(l,i,s*10+1,cost+1)+dfs(i+1,r,s*10+2,cost+2)); } f[make_pair(make_pair(l,r),s)]=res; return res; } } void solve(){ int ans=0x3f3f3f3f3f3f3f3f; ans=min(dfs(1,n,1,1),dfs(1,n,2,2)); for(int i=0;i<=n;i++){ ans=min(ans,dfs(1,i,1,1)+dfs(i+1,n,2,2)); } cout<<ans<<endl; } signed main(){ readin(); solve(); return 0; }


测评信息: