hdu4753
很简单的位模拟(bit-mask),可惜队友读题误以为很难,没有及时跟我交流,不然应该很早就可以出了。
很容易看出来,总共才16个点、24条边。用一个int类型数字就可以描述这个图了,按照16点的关系可以找出已确定的那些边。然后就是很简单的DP了。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int jb[]={ (<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<),
(<<)|(<<)|(<<)|(<<)
};
int d[][];
void gao(){
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
d[][]=,d[][]=,d[][]=;
}
int zhuge(int x,int y){
if(x>y) swap(x,y);
return d[x][y];
}
int score[],lastc;
int get_lc(int em){
int lc=;
for(int i=;i<;i++)
if((em&jb[i])==jb[i])
lc++;
return lc;
}
int DP(int sc[],int em,int id,int run,int lastc){
if(run > ) {
if(sc[id]>sc[-id]) return ;
return ;
}
for(int i=;i<=;i++)
if(!((<<i)&em)){
int n_sc[]={sc[],sc[]};
int n_em=em|(<<i),lc=get_lc(n_em);
n_sc[id] += lc-lastc;
if(!DP(n_sc,n_em,-id,run+,lc)) return ;
}
return ;
}
int main()
{
gao();
int cases; cin>>cases;
for(int cas=;cas<=cases;cas++){
score[]=score[]=;
lastc=;
int id=,em=;
int pl,run=; cin>>pl;
while(run<=pl){
int x,y,e,lc;
scanf("%d%d",&x,&y); e=zhuge(x,y);
em |= <<e; lc = get_lc(em);
score[id] += lc-lastc; lastc=lc;
id=-id;
run++;
}
int status=DP(score,em,id,run,lastc);
printf("Case #%d: ",cas);
if((id==&&status) || (id==&&!status)) printf("Tom200\n");
else printf("Jerry404\n");
}
return ;
}
hdu4753的更多相关文章
- hdu4753 Fishhead’s Little Game 状态压缩,总和一定的博弈
此题和UVA 10891 Game of Sum 总和一定的博弈,区间dp是一个道理,就是预处理麻烦 这是南京网络赛的一题,一直没做,今天做了,虽然时间有点长,但是1ac,这几乎是南京现场赛的最后一道 ...
- HDU4753 Fishhead’s Little Game——2013 ACM/ICPC Asia Regional Nanjing Online
今天比赛又是做得好水的.被狂虐啊. 比赛两个多小时一直没出题,遒遒最先交的若干发都wa了.T_T 我独自在一遍苦思了1006这个题,还好最后把这个题目A掉了,不然又是深坑队友. 题目的意思我就不多说了 ...
随机推荐
- python基础教程_学习笔记14:标准库:一些最爱——re
标准库:一些最爱 re re模块包括对正則表達式的支持,由于以前系统学习过正則表達式,所以基础内容略过,直接看python对于正則表達式的支持. 正則表達式的学习,见<Mastering Reg ...
- 如何灵活利用免费开源图标字体-IcoMoon篇
http://www.zhangxinxu.com/wordpress/2012/06/free-icon-font-usage-icomoon/
- ImageButton与Button
1.Button控件 Butotn控件,主要用来实现一些命令操作,通过注册监听事件来实现.首先需要在xml文档中放入一个button按钮. <Button android:id="@+ ...
- PHP上传图片至阿里云
<?php header("Content-type: text/html; charset=utf-8"); header('Access-Control-Allow-Or ...
- blog开篇
本来是写java学习开篇的,现在就把它改为博客开篇吧. 其实一直都想着记录一下自己学习的过程,或者说是借口,一直在忙,也从重庆辗转到广州,又从广州辗转到天津了,又一个新阶段开始了,猴年马月都到了,哈哈 ...
- PHP json_encode()函数使用
<?php $tmp = array(); echo json_encode($tmp); //打印 [] echo "\n"; echo json_encode($tmp, ...
- laravel的模块化是如何实现的
laravel的模块化是如何实现的 在laravel提供的官方文档上,有一个这样的名词 服务提供者,文档中介绍了它在laravel框架中的角色,以及如何使用它,但却没有讲明服务提供者的本质--它是为了 ...
- php获取当前日期-7天
// 将目前的时间戳值放入一数组内$strdate = '2014-02-03';$desDate = strtotime($strdate);//var_dump($desDate); $times ...
- 离线使用nuget
先新建一个项目,将所有想保存下来或者要升级的package先安装或升级. 然后在项目中将packages文件夹全部拷贝出来,专门放到一个目录备用,以后的项目就可以根据此packages文件夹来离线使用 ...
- JavaMail回复
JavaMail邮件回复 http://blog.csdn.net/o_darling/article/details/17558049 http://blog.csdn.net/xiyang_199 ...