Cunning Gena CodeForces - 417D

题意

先将小伙伴按需要的监视器数量排序。然后ans[i][j]表示前i个小伙伴完成j集合内题目所需最少钱。那么按顺序枚举小伙伴,用ans[i-1][j]更新ans[i][j]和ans[i][j | 第i个小伙伴能完成题目的集合](更新后一种时答案要加上第i个小伙伴的费用)。

由于小伙伴已经按监视器数量排序了,对于每个枚举出的小伙伴i,可以试着将其作为最后一个要求助的小伙伴,那么此时监视器上花的钱就是这个小伙伴所需监视器数量*每个的费用,求助小伙伴费用就是ans[i][所有题目的集合],此时总费用就是这两者的总和。最终答案就是最小的枚举得到的总费用。

可以开滚动数组优化空间。

错误记录:45-47无效代码导致TLE

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long LL;
LL n,m1,b;
struct A
{
LL x,k,v;
bool operator<(const A& b) const
{
return k<b.k;
}
}aa[];
LL ans[][];
LL anss;
int main()
{
LL i,j,k,t,tt,ii=;
scanf("%I64d%I64d%I64d",&n,&m1,&b);
for(i=;i<=n;i++)
{
scanf("%I64d%I64d%I64d",&aa[i].x,&aa[i].k,&tt);
for(j=;j<=tt;j++)
{
scanf("%I64d",&t);
//v[i].push_back(t);
aa[i].v|=(<<(t-));
}
}
sort(aa+,aa+n+);
anss=0x3f3f3f3f3f3f3f3f;
memset(ans,0x3f,sizeof(ans));
ans[][]=;
for(i=;i<n;i++)
{
ii^=;
memset(ans[ii],0x3f,sizeof(ans[ii]));
for(j=;j<(<<m1);j++)
{
ans[ii][j]=min(ans[ii][j],ans[ii^][j]);
ans[ii][j|aa[i+].v]=min(ans[ii][j|aa[i+].v],ans[ii^][j]+aa[i+].x);
}
/*for(j=0;j<(1<<m1);j++)
for(k=0;k<m1;k++)
ans[ii][j]=min(ans[ii][j],ans[ii][j|(1<<k)]);*/
anss=min(anss,ans[ii][(<<m1)-]+b*aa[i+].k);
}
if(anss!=0x3f3f3f3f3f3f3f3f)
printf("%I64d",anss);
else
printf("-1");
return ;
}

最新文章

  1. (2016弱校联盟十一专场10.3) B.Help the Princess!
  2. 基础知识系列☞MSSQL→约束
  3. cpp blog上面看到一哥们写的 下拉列表
  4. 高效使用Vector
  5. c# 中日期的使用
  6. IOS流媒体播放
  7. CentOS6.4x64安装mysql5.6.23(rpm)
  8. Javascript技巧实例精选(3)—用字符在屏幕上打印金字塔
  9. React与Preact差异之 -- setState
  10. 自动化接口测试(java)
  11. github 遇到Permanently added the RSA host key for IP address &#39;192.30.252.128&#39; to the list of known hosts问题解决
  12. Java JDK版本切换--绝逼好使
  13. freemark+ITextRenderer 生成PDF,设置pdf的页面大小
  14. gVim 中文内容显示为乱码的解决办法
  15. 【Python】获取翻页之后的各页面中的属性值。
  16. python下载网页上公开数据集
  17. linux查找目录下的所有文件中是否含有某个字符串 (转)
  18. Golang 之 Base62 编码
  19. React Native 搭建开发环境
  20. android 智能提示

热门文章

  1. HDU 4279 Number(找规律)
  2. django 简易博客开发 2 模板和数据查询
  3. 【转】Wireshark技巧-过滤规则和显示规则
  4. 【.NET Core项目实战-统一认证平台】基于jackcao博客使用VSCode开发及感悟One搭建开发环境
  5. linux下weblogic11g成功安装后,启动报错Getting boot identity from user
  6. C#数据库连接池 MySql SqlServer
  7. 反射学习总结 --为理解SpringMVC底层做准备
  8. 零基础学python-5.1 数字简单介绍
  9. 【bzoj1561】[JSOI2009]去括号
  10. 6.游戏特别离不开脚本(3)-JS脚本操作java(2)(直接解析JS公式,并非完整JS文件或者函数)