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个城市一次且仅且一次,然后回到再回到出发点.问销售员应如何经过这些城市是他所走的路线最短? 用图论的语言描述就是:给 ...
随机推荐
- [ 转载 ] Android JNI(一)——NDK与JNI基础
Android JNI(一)——NDK与JNI基础 隔壁老李头 关注 4.4 2018.05.09 17:15* 字数 5481 阅读 11468评论 8喜欢 140 本系列文章如下: Androi ...
- Future和FutureTask
上次介绍了Callable实现多线程的方法.现在介绍和Callable搭配的类.上一篇只是简单的用Callable做了一个demo. 一.Future 1.关于callable和runable的区别( ...
- 【拓扑排序】BZOJ4010-[HNOI2015]菜肴制作
[题目大意] 是要求N个点的一个拓扑序,且满足以下条件:编号1的位置尽可能靠前,在满足所有限制,编号2的位置尽可能靠前,以此类推. [思路] 一开始觉得优先队列维护一下拓扑就好了.然而样例告诉我们是不 ...
- css实现背景图片模糊
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 6、Redis中对Hash类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- 新手学cocos2dx,centos7下的安装过程
背景 打算学写游戏,新手向,当然从cocos2d-x开始. 看了cocos的文档,安装是针对ubuntu的,这里记录下centos7上安装.编译.运行测试的过程. 如果你已经有ubuntu,不推荐看此 ...
- 区别ES3ES5和ES6this的指向问题。区分普通函数和箭头函数中this的指向问题
ES3 ES5this的指向问题 this指的是该函数被调用的对象 var foo = function () { this.a = 'a', this.b = 'b', this.c = { a: ...
- 使用 IntraWeb (25) - 基本控件之 TIWRegion
这应该是 IW 中最重要的容器了, 和它同父的还有 TIWTabControl TIWRegion 所在单元及继承链: IWRegion.TIWRegion 主要成员: property Align: ...
- asp.net core中的razor页面
Razor 页面(Razor Pages)是 ASP.NET Core 2.0 中新增的一种Web页面模型,相对MVC形式更加简单易用,可以说是一个服务端的MVVM模型,本文简单的介绍一下它的用法. ...
- STM32的PWM输入模式设置并用DMA接收数据
参考 :STM32输入捕获模式设置并用DMA接收数据 PWM input mode This mode is a particular case of input capture mode. The ...