博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hamburger Magi 状压dp
阅读量:5119 次
发布时间:2019-06-13

本文共 1448 字,大约阅读时间需要 4 分钟。

  题意: 一个人有m元钱  有n个汉堡  每个汉堡有其价值和其花费   且做某个汉堡需要做好一些前提汉堡    求最大价值

 

强行状压即可   把两个&写成了&& QAQ 

#include
using namespace std;//input by bxd#define rep(i,a,b) for(int i=(a);i<=(b);i++)#define repp(i,a,b) for(int i=(a);i>=(b);--i)#define RI(n) scanf("%d",&(n))#define RII(n,m) scanf("%d%d",&n,&m)#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)#define RS(s) scanf("%s",s);#define ll long long#define pb push_back#define REP(i,N) for(int i=0;i<(N);i++)#define CLR(A,v) memset(A,v,sizeof A)//#define inf 0x3f3f3f3fconst int N=20;int n,m;int cost[N];int val[N];int bef[N][N];int money[N<<15];int dp[N<<15];bool judge(int state,int j){ if(state& (1<<(j-1)) )return 0; rep(i,1,bef[j][0]) { int x=bef[j][i]; if( !(state&(1<<(x-1))) )return 0; } return 1;}int main(){ int cas;RI(cas); while(cas--) { RII(n,m); rep(i,1,n)RI(val[i]); rep(i,1,n)RI(cost[i]); rep(i,1,n) { int q;RI(bef[i][0]); rep(j,1,bef[i][0]) RI(bef[i][j]); } CLR(dp,-0x3f); CLR(money,0); dp[0]=0; int maxx=0; rep(i,0, (1<
dp[i|(1<<(j-1))] ) { dp[i|(1<<(j-1))]=dp[i]+val[j]; maxx=max(maxx,dp[i|(1<<(j-1))]); money[i|(1<<(j-1))]=cost[j]+money[i]; } } cout<
<
View Code

 

转载于:https://www.cnblogs.com/bxd123/p/10899769.html

你可能感兴趣的文章
[转][C#]Combobox 行高
查看>>
什么是IDS/IPS?
查看>>
JavaScript:学习笔记(3)——正则表达式的应用
查看>>
LeetCode:旋转链表【61】
查看>>
浮点数转化为字符串
查看>>
ssRs父子维度
查看>>
关押罪犯
查看>>
像房源上下架链路比较长的需求怎么测试?测试的重点和难点?
查看>>
python小记(6)高阶函数
查看>>
加密接口如何测试?
查看>>
Dubbo和kafka的基本原理和测试方法
查看>>
http和https的区别
查看>>
接口自动化之数据依赖
查看>>
自动化框架之pytest
查看>>
jmeter(1)添加header和cookie
查看>>
jmeter接口上传图片功能
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
Vue 利用指令实现禁止反复发送请求
查看>>
找到树中指定id的所有父节点
查看>>
使用Xcode的Targets来管理开发和生产版本的构建
查看>>