hdu4778(状态压缩dp)
题意:
有G种颜色的宝石,共B袋。两个人轮流拿宝石,每次从B袋中拿一袋,把其中的所有宝石倒入一个公共容器,每袋宝石只能取一次。
当容器中有S个相同颜色的宝石时,将失去这S个宝石,当前操作者得到一个魔法石,每次得到一个魔法石,作为奖励,他都可以再次拿一袋宝石倒入容器。
双方都想让自己的魔法石尽量多,Alice先手,问在最优操作下,Alice 和 Bob的魔法石差是多少。
0 <= B <= 21, 0 <= G <= 8, 0 < n <= 10, S < 20。
分析:
因为数据很小,所以考虑用状态压缩来表示
对于状态S,若某位为0,则说明该位的袋子没有丢到容器中,若某位位1,则说明该袋子已经丢到了容器中,f[S]表示S状态下,先手-后手的最大值
显然答案ans=f[0]
考虑初始情况f[(1<<n)-1]=0(因为这表示所有袋子都已经丢到了容器中,在剩余的袋子中,先手后手都无法取,0-0=0)
枚举状态S的每一个数字0的位置i
f[S]由f[S|1<<i]逆推得到
若将i丢进容器,没有获得魔法石,那么f[S]=max(f[S],-f[S|1<<i]) (因为交换了先手后手顺序)
若将i丢进容器,获得了魔法石,那么f[S]=max(f[S],f[S|1<<i]+丢进i获得的魔法石) (因为获得了魔法石,所以先手仍旧是先手)
注意dp过程中计算某个位置的贡献,这是可以预处理的
复杂度O(2^B * B * G)
hdu4778(状态压缩dp)的更多相关文章
- hoj2662 状态压缩dp
Pieces Assignment My Tags (Edit) Source : zhouguyue Time limit : 1 sec Memory limit : 64 M S ...
- POJ 3254 Corn Fields(状态压缩DP)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4739 Accepted: 2506 Descr ...
- [知识点]状态压缩DP
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...
- HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...
- DP大作战—状态压缩dp
题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...
- 状态压缩dp问题
问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Ev ...
- BZOJ-1226 学校食堂Dining 状态压缩DP
1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MB Submit: 588 Solved: 360 [Submit][ ...
- Marriage Ceremonies(状态压缩dp)
Marriage Ceremonies Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
- HDU 4511 (AC自动机+状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4511 题目大意:从1走到N,中间可以选择性经过某些点,比如1->N,或1->2-> ...
随机推荐
- 用vue写的移动端车牌号输入法
效果图: (录制了视频演示,然而不会上传.....心塞.....) 本页面所在项目已上传GitHub,github下载地址:https://github.com/dan-Zd/car-vueapp ...
- 【Python】第一个爬虫
import urllib.request import re class DownPic: def __init__(self,url,re_str): self.url = url self.re ...
- git --版本对比
比较暂存区域和工作目录 -git diff 分别拷贝暂存区和工作目录的文件到a和b文件夹 --- //表示旧文件 暂存区的 +++ //表示新文件 工作目录的 F 一页一页往下移 B 一 ...
- Python3.0 操作MySQL数据库执行SQL语句
py3不支持MySQLdb,需要导入pymysql模块 # coding: utf-8 # Team : Quality Management Center # Author:Carson # Dat ...
- C# 设置系统环境变量
using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; ...
- jekyll 将纯文本转化为静态网站和博客 静态网站生成器
jekyll 将纯文本转化为静态网站和博客 静态网站生成器 这个貌似对windows 支持不是很好~ 但是有支持,官方说不建议使用
- IIS部署SSL证书后提示不可信的解决方案
IIS部署SSL证书后提示不可信的解决方案 本帖最后由 wosign-support3 于 2015-7-17 17:18 编辑 第一步:打开mmc——点击文件——添加删除管理单元——证书——计算 ...
- android中ListView的定位:使用setSelectionFromTop
如果一个ListView太长,有时我们希望ListView在从其他界面返回的时候能够恢复上次查看的位置,这就涉及到ListView的定位问题: 解决的办法如下: 1 2 3 4 5 6 7 // 保存 ...
- CSS工具、CSS重置(CSS Reset)
样式重置的目的是减少浏览器的不一致性,例如line-height,margin,标题的font-size大小等等.样式重置经常在CSS框架中出现. 这里的重置样式故意写的很一般,例如没有为body元素 ...
- 通过JS判断联网类型和连接状态的实现代码
<!DOCTYPE HTML><html xmlns="http://www.w3.org/1999/xhtml" lang="en"> ...