题意是这样的     给你n个汉堡     每个汉堡有它的价值   做每个汉堡都得花费对应的能量      现在告诉你最大能量 让你求获得的最大的价值(有些汉堡必须有另一些汉堡做好为前提)

给你的n你最大为15

这道题的重点在于   每个汉堡只能做一次      跑遍所以的状态      mark记录每个状态下所剩余的能量  dp数组记录每个状态下的获得的最大的价值

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;

int value[20],cost[20],need[20][20],n,m;

int mark[1<<16],dp[1<<16];
int Max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int T,i,j,a,b;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&value[i]);
}
for(i=1;i<=n;i++)
scanf("%d",&cost[i]);
memset(need,0,sizeof(need));
for(i=1;i<=n;i++)
{
scanf("%d",&need[i][0]);
for(j=1;j<=need[i][0];j++)
{
scanf("%d",&need[i][j]);
}
}
memset(mark,0,sizeof(mark));
for(i=0;i<(1<<n);i++)
      dp[i]=-10000000;
      dp[0]=0;
      mark[0]=m;
int flash,k=0,x;
for(i=0;i<=(1<<n)-1;i++)
{   
for(j=1;j<=n;j++)
{
x=(1<<(j-1));
if(i&x) continue;
int now=i|(1<<(j-1));
flash=0;
for(int t=1;t<=need[j][0];t++)
{
if(!(i&(1<<((need[j][t])-1)))) {flash=1;break;}
}
if(!flash&&dp[now]<dp[i]+value[j]&&mark[i]>=cost[j])
{
mark[now]=mark[i]-cost[j];
dp[now]=dp[i]+value[j];
k=Max(dp[now],k);
}
}
}
printf("%d\n",k);
}
return 0;
}

hdu3182 状态压缩水题相关推荐

  1. hdu4064 三进制状态压缩 好题!

    还不太会做这类题,总之感觉有点难啊. 用深搜代替打表求出一行所有的可行状态,注意要进行剪枝 这是自己理解的代码,但是tle了 #include<bits/stdc++.h> using n ...

  2. hdu3182 状态压缩dp

    题意:       一个人做汉堡包,每个汉堡包有自己的花费和价值,某些汉堡包必须是在其他的某些汉堡包已经做好了的前提下才能制作,给你这个人的初始钱数,问最大的价值是多少. 思路:       比较简单 ...

  3. 用计算机计算泄压面积,牢记|遇到泄压面积的计算题,你会解吗?

    原标题:牢记|遇到泄压面积的计算题,你会解吗? 当你遇到泄压面积计算题时,你会解答吗?今天小编就来告诉大家如何解答吧! 1 泄压面积的计算 有爆炸危险的甲.乙类厂房,其泄压面积宜按下式计算,但当厂房的 ...

  4. java教程传智播客,面试真题解析

    01 阿里中间件(四面,Java岗) 1.1 Java中间件一面 技术一面考察范围 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常 ...

  5. 第十三届蓝桥杯大赛软件赛省赛真题

    第十三届蓝桥杯大赛软件赛省赛Java 大学 B 组 文章目录 第十三届蓝桥杯大赛软件赛省赛Java 大学 B 组 [考生须知] 试题 A: 星期计算 试题 B: 山 试题 C: 字符统计 试题 D: ...

  6. 正在准备面试?快手三面面试真题,搞懂这些直接来阿里入职

    最近几天,有的人在偷偷地买蚂蚁的基金,有的人却偷偷的在蚂蚁面试. 最近确实是面试的好时候.大家都奔着大厂去的,最近也分享了好多大厂的面经了,什么阿里.字节.京东.美团.百度.腾讯.滴滴.网易-已经数不 ...

  7. 【基本算法】 位运算:二进制状态压缩

    二进制状态压缩 二进制状态压缩,是指将一个n位的 bool 数组用 n 位的二进制数表示的方法. OP 运算 取出 n 在二进制表示下的第k位 (n >> k) & 1 取出 n ...

  8. 牛客网Chino with Queue【状压DP】

    Chino的数学很差,因此Cocoa非常担心.今天,Cocoa准备教Chino和排队有关的问题. 我们总是会学各种排列组合的问题,那些题目大多数都是套路.而Cocoa不喜欢套路. 通常来说,每个人在排 ...

  9. ACM-ICPC 2018 南京赛区网络预赛丨AC Challenge丨状压DP

    题意: 一个人做n道题目,每道题会收获ai*t+bi的分数,同时要休息一个单位的时间t.此外,还限制做题目i之前,要先完成si道题目{pi1,pi2,···,pisi}求最多获得多少分数. 思路: n ...

最新文章

  1. Session一致性的解决方案
  2. Visual Studio编译选项简介
  3. C语言万年历 年历月历日历都要,c语言万年历
  4. 查询分析器在哪里_你应该知道的3种Node.js分析器类型
  5. 企业级 SpringCloud 教程 (七) 高可用的分布式配置中心(Spring Cloud Config)
  6. 【Augmented Reality】增强现实中的光学透射式头盔显示器的标定深入
  7. 准备接入个人支付接口?看完这几款支付产品再做决定!
  8. apache php 调优_Apache的性能优化实例(一)
  9. 从零实现深度学习框架——实现常见运算的计算图(下)
  10. Atitit 摄像头与主机连接方式大总结
  11. 会考计算机辅助制图,信息技术会考基础知识
  12. 那个回乡创业的年轻人,终于断了再回京的念头
  13. 有关AirtestiOS与iproxy报错“error connecting to device“
  14. 计算机窗口弹不出来桌面怎么弄,桌面显示不出来怎么办 桌面显示不出来解决方法【图文】...
  15. 昊海微信拼团php,最新微信昊海拼团系统独立版源码分享,微信团购关注送红包送优惠卷功能,附说明文档...
  16. 电脑黑屏,只有鼠标光标
  17. Facebook账号被封了怎么办?这份账号申诉指南请收好
  18. 计算机之间的通信原理
  19. python爬虫论文参考文献格式_Python爬虫进阶必备 | XX文学加密分析实例
  20. 浪潮精彩亮相第十届中国云计算大会

热门文章

  1. UVM TLM1.0简单介绍
  2. 计算机房地板厚度,机房地板尺寸一般是多少?
  3. 安徽科技学院 信网学院网络文化节 胡鑫
  4. Uni项目启动微信、QQ、淘宝、抖音、京东等APP的方法(转载)
  5. process_vm_readv/writev进程间数据传输
  6. idm 假冒_深度假冒人工智能对通过新媒体共享的信息传播的影响
  7. vscode报错之 对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig“ 或 “jsconfig“ 中设置 “experimentalDecorators“ 选项以删除此警告。
  8. 计算机仿真保密审查必须盖章,计算机仿真杂志
  9. DLR in Silverlight
  10. 医美互联网公司:新氧