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个城市一次且仅且一次,然后回到再回到出发点.问销售员应如何经过这些城市是他所走的路线最短? 用图论的语言描述就是:给 ...
随机推荐
- 命令:tr
参考资料:https://www.thegeekstuff.com/2012/12/linux-tr-command/ 简介 tr命令用于转换.删除或者去除重复字符.它从STDIN中读取数据并且将其写 ...
- Xamarin iOS教程之自定义视图
Xamarin iOS教程之自定义视图 Xamarin iOS自定义视图 工具栏中的视图在实际应用开发中用的很多,但是为了吸引用户的眼球,开发者可以做出一些自定义的视图. [示例2-33]以下将实现一 ...
- 24.python中类的方法
类中的方法,其实就是类中的函数,可以分为:实例方法,类方法,静态方法.方法和字段一样,也是属于类的属性,所以也具有运行中修改的特效, 但一般不推荐这样做. 我在类的基本语法中,介绍了构造器方法:__i ...
- BugkuCTF ---游戏过关 writeup
下载程序后发现是输入1-8数字中的一位 至于怎么玩,我到现在都没弄懂 不多说,直接拖入Ollydbg 搜索 分析了一下字符串,发现有一个显示flag的字符串 双击过去看看,发现类似于一个函数. 接下来 ...
- BZOJ4042 : [Cerc2014] parades
设f[x]为x子树里能选的最多的路径数,h[x]为x子树里往上走的点的集合,且不与x子树内的最优解冲突 首先f[x]=sum(f[son]) 若h[son]与x可以直接匹配,则匹配上,f[x]++ 然 ...
- 【转】SQL Server游标的使用
在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. 正常面向集合的思维方式是: 而对于游标来说: ...
- oracle统计字符串包含字符个数
函数:REGEXP_COUNT(); select REGEXP_COUNT('1,2,6,8,7,9',',') from dual 结果:5
- 使用 IntraWeb (11) - 基本控件之 TIWButton
所在单元及继承链: IWCompButton.TIWButton < TIWCustomControl < TIWBaseHTMLControl < TIWBaseControl & ...
- STM32F4 -- How to use the DMA burst feature
Bits 15:13 Reserved, must be kept at reset value. Bits 12:8 DBL[4:0]: DMA burst length This 5-bit ve ...
- Windows 2008 R2防火墙设置运行被ping通
参考文献: http://huobumingbai.blog.51cto.com/1196746/323896/