hdu4753 Fishhead’s Little Game 状态压缩,总和一定的博弈
此题和UVA 10891 Game of Sum 总和一定的博弈,区间dp是一个道理,就是预处理麻烦
这是南京网络赛的一题,一直没做,今天做了,虽然时间有点长,但是1ac,这几乎是南京现场赛的最后一道正式题了
typedef long long LL;
const int INF = 1000000007;
const double eps = 1e-10;
const int MAXN = 1000010;
int into[20][20];
int s[12];
vector<int>p[25];
bool vis[1 << 24];
short dp[1 << 24];
/**
0 1 2
3 4 5
6 7 8
9 10 11 12 13 14 15
16 17 18 19
20 21 22 23
*/
short dpf(int ss, int last)
{
if (!last) return 0;
if (vis[ss]) return dp[ss];
vis[ss] = true;
short &ans = dp[ss];
ans = 0;
short tmp = 0;
short tmplast = last;
int nextss; REP(i, 24)
{
if ( (ss & (1 << i)) == 0)
{
nextss = ss | (1 << i);
tmp = 0;
tmplast = last;
REP(j, p[i].size())
{
if ( (nextss & s[p[i][j]]) == s[p[i][j]] )
tmp++, tmplast--;
}
tmp += tmplast - dpf(nextss, tmplast);
ans = max(ans, tmp);
}
}
return ans;
} void init()
{
///点到边的映射
FE(i, 1, 16)
if (i % 4) into[i][i + 1] = into[i + 1][i] = i - (i / 4) - 1;
FE(i, 1, 12)
into[i][i + 4] = into[i + 4][i] = 12 + i - 1; ///边到小正方形的映射,以及小正方形到边的映射
CLR(s, 0);
REP(i, 25) p[i].clear();
REP(i, 9)
{
s[i] |= (1 << i);
p[i].push_back(i);
s[i] |= (1 << (i + 3));
p[i + 3].push_back(i); s[i] |= (1 << (12 + (i / 3) * 4 + i % 3));
p[12 + (i / 3) * 4 + i % 3].push_back(i);
s[i] |= (1 << (13 + (i / 3) * 4 + i % 3));
p[13 + (i / 3) * 4 + i % 3].push_back(i);
}
}
int win[2];
int n, m;
int S; int main ()
{
int x, y, z;
int T;
int nc = 1;
init();
RI(T);
while (T--)
{
CLR(win, 0);
RI(m);
S = 0;
REP(i, m)
{
RII(x, y);
z = into[x][y];
S |= (1 << z);
REP(j, p[z].size())
{
if ((S & s[p[z][j]]) == s[p[z][j]])
win[i % 2]++;
}
}
printf("Case #%d: ", nc++);
int last = 9 - (win[0] + win[1]);
if (!last)
{
puts(win[0] > 4 ? "Tom200" : "Jerry404");
}
else
{
CLR(vis, 0);
win[m % 2] += dpf(S, last);
if (m % 2 == 0) puts(win[m % 2] > 4 ? "Tom200" : "Jerry404");
else puts(win[m % 2] > 4 ? "Jerry404" : "Tom200");
}
}
return 0;
}
hdu4753 Fishhead’s Little Game 状态压缩,总和一定的博弈的更多相关文章
- hdu 5724 SG+状态压缩
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- POJ 3311 【状态压缩DP】
题意: 给n个点,给出矩阵代表i到j单向边的距离. 要求,不介意访问每个点的次数,要求访问完每个点,使得路程总和最小. 思路: 由于不介意访问每个点的次数,所以可以先进行FLOYD求出任意两个点之间的 ...
- BZOJ1688|二进制枚举子集| 状态压缩DP
Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...
- [转]状态压缩dp(状压dp)
状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...
- POJ 2441 Arrange the Bulls 状态压缩递推简单题 (状态压缩DP)
推荐网址,下面是别人的解题报告: http://www.cnblogs.com/chasetheexcellence/archive/2012/04/16/poj2441.html 里面有状态压缩论文 ...
- poj 3254(状态压缩DP)
poj 3254(状态压缩DP) 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相 ...
- BZOJ 3813--奇数国(线段树&欧拉函数&乘法逆元&状态压缩)
3813: 奇数国 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 755 Solved: 432[Submit][Status][Discuss] ...
- hdu4336 Card Collector(概率DP,状态压缩)
In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, fo ...
- 旅行商问题——状态压缩DP
问题简介 有n个城市,每个城市间均有道路,一个推销员要从某个城市出发,到其余的n-1个城市一次且仅且一次,然后回到再回到出发点.问销售员应如何经过这些城市是他所走的路线最短? 用图论的语言描述就是:给 ...
随机推荐
- windows10 下安装tensorflow 并且在jupyter notebook 上使用tensorflow
一.安装jupyter notebook并配置环境 首先建议大家安装anaconda,最新版本请到官网下载(点击下载连接),没错,直接点击下载python3.6版本的(当然选择做自己电脑相应的位数,我 ...
- DBUtils工具
DBUtils工具 简介 是Apache旗下的产品.是对jdbc的简单封装.提供出通用的jdbc操作方法.简化开发者使用jdbc的成本. 常用的API说明 |- QueryRunner类: 主要进行j ...
- Future和FutureTask
上次介绍了Callable实现多线程的方法.现在介绍和Callable搭配的类.上一篇只是简单的用Callable做了一个demo. 一.Future 1.关于callable和runable的区别( ...
- BZOJ2160: 拉拉队排练
Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...
- 【BZOJ】1854: [Scoi2010]游戏【二分图】
1854: [Scoi2010]游戏 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 6759 Solved: 2812[Submit][Status] ...
- bzoj1503 郁闷的出纳员
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的 工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经 ...
- Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) D. Artsem and Saunders 数学 构造
D. Artsem and Saunders 题目连接: http://codeforces.com/contest/765/problem/D Description Artsem has a fr ...
- Codeforces Round #284 (Div. 1) A. Crazy Town 计算几何
A. Crazy Town 题目连接: http://codeforces.com/contest/498/problem/A Description Crazy Town is a plane on ...
- 10分钟上手python pandas
目录 Environment 开始 对象创建 查看数据 选择 直接选择 按标签选择 按位置选择 布尔索引 设置 缺失数据 操作 统计 应用(apply) 直方图化(Histogramming) 字符串 ...
- 外键的约束(Mysql、PostgreSQL)
关于外键是什么,具体不再详述,可以自行百度. 讲一下关于外键的 On Delete和On Update的使用 最近在项目的表中看到这些,不懂顺便查了查: ONSTRAINT "c_clust ...