关注
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f3f3f
const int N=1<<16;
#define ll long long
int a[20],dp[N],v[N];
int dfs(int st,int now)
{
if(~dp[st])return dp[st];
int ans=0;
for(int s=st; s; s=(s-1)&st)
if(v[s])ans=max(dfs(st-s,now+v[s])+a[now+v[s]],ans);
return dp[st]=ans;
}
int main()
{
int n,m,s=0;
cin>>n>>m;
for(int i=0; i<n; i++)
cin>>a[i],s+=a[i];
sort(a,a+n,greater<int>());
for(int i=0; i<m; i++)
{
int x,y;
cin>>x;
int st=0;
for(int j=0; j<x; j++)
{
cin>>y;
y--;
st|=(1<<y);
}
v[st]=x;
}
memset(dp,-1,sizeof dp);
s-=dfs((1<<n)-1,-1);
cout<<s<<endl;
}
一开始想通过m个状态来组合出最优的,想到m^2都不能跑就觉得好难。后来经过提示复杂度O(3^n)后,才想到枚举子集的子集。反过来确定是否有m。太爽了,自己想到的感觉是不一样
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
- 1... 一个三无废物985硕士的求救帖!Help8333
- 2... 两年后重看秋招——后悔选择读研,可到底该怎么做?7563
- 3... 秋招公司情报局,分享线索得牛币💰7466
- 4... 字节客户端一面7369
- 5... 月薪一万五,天天都喊苦5607
- 6... 技术不是唯一答案:计算机大学生的第一堂社会课4465
- 7... 手机厂工作一年了,给想进手机行业的兄弟们写点建议4118
- 8... 字节暑期实习三周跑路会被拉黑吗3820
- 9... 机械读研的核心优势是?3242
- 10... 凌晨一点我不可以睡觉吗?我要被你侮辱?我晚上会做噩梦的呜呜呜3037
正在热议
更多
# 大厂面试初体验 #
5766次浏览 42人参与
# 如果可以,你希望哪个公司来捞你 #
101034次浏览 459人参与
# 如何提高实习转正率? #
2380次浏览 30人参与
# leader认为你工作不认真怎么办 #
30945次浏览 142人参与
# 你遇到过哪些神仙同事 #
100384次浏览 724人参与
# 我的国央企投递进展 #
46704次浏览 292人参与
# 国企是理工四大天坑的最好选择吗 #
13715次浏览 95人参与
# 五一之后,实习真的很难找吗? #
78566次浏览 515人参与
# 机械人,你被简历秒挂的企业有哪些? #
43040次浏览 281人参与
# 招聘要求与实际实习内容不符怎么办 #
113041次浏览 770人参与
# 如果公司给你放一天假,你会怎么度过? #
17140次浏览 128人参与
# 找工作时的取与舍 #
80509次浏览 568人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
246370次浏览 1792人参与
# 三一重工求职进展汇总 #
15119次浏览 67人参与
# OPPO求职进展汇总 #
662979次浏览 5041人参与
# 你的秋招第一场笔试是哪家 #
142848次浏览 1453人参与
# 总结:哪家公司面试体验感最差 #
61128次浏览 276人参与
# 如果重来一次你还会读研吗 #
176953次浏览 1786人参与
# 机械人,说说你的烦心事 #
69735次浏览 839人参与
# 面试时被问的最奇葩的问题 #
23020次浏览 130人参与