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掉了,不然又是深坑队友. 题目的意思我就不多说了 ...
随机推荐
- Web堡垒机
最近研究了一下开源的web堡垒机,涉及两个,一个是gateone(python):一个是Web SSH Proxy(java),简单的对后者进行了改造,使其在登录与linux系统交互的时候,不需要使用 ...
- Android中view的事件
view:top.left.right.bottom,相对于parent的位置参数,获取通过get*()来获取.width=right-left.height=bottom-top.x=left+tr ...
- (c#)WinForm遍历所有控件
遍历WinForm中的所有控件,只执行一次以下语句是不行的 foreach (Control ctl in this.Controls) { } 这样只能遍历到第一层控件,子控件是遍历不到的,要想遍历 ...
- java多线程并发例子
public static void main(String[] args) { for(Thread t:getThreads()){ t.start(); } } public static Th ...
- php遍历目录输出目录及其下的所有图片文件
在做网站的时候,需要给文章内所有的图片添加上logo,如何利用ThinkPHP来实现. ThinkPHP为我们很好的提供了图像处理类,给文章中的所有图片加上水印的思路,上传的图片文件都保存在一个文件夹 ...
- PHPStrom上传文件报502错误原因
PhpStorm是一个轻量级且便捷的PHP IDE,其自身拥有apache类似的编译器,能够在无Apache的情况下运行,很适合初学PHPStrom的朋友. 但是我发现了一个问题,那就是用PHPStr ...
- jacob 操作word转pdf
项目需要对上传的word及pdf进行在线预览,因基于jquery的pdf插件,很方面实现在线预览,而word实现在线预览费劲不少,于是想到在进行上传处理时,直接将word转成pdf,在预览时直接预览p ...
- Sublime Text2使用技巧
推荐Lucifr和JerryQu的几篇博文: Sublime Text 2 入门及技巧 via: http://lucifr.com/139225/sublime-text-2-tricks-and- ...
- EMV标准
EMV标准是由国际三大银行卡组织--Europay(欧陆卡,已被万事达收购).MasterCard(万事达卡)和Visa(维萨)共同发起制定的银行卡从磁条卡向智能IC卡转移的技术标准,是基于IC卡的金 ...
- 又是玻璃效果?调用一句代码就OK了
原文 http://www.cnblogs.com/lan-mei/archive/2012/05/11/2495740.html 最近自学WPF,网上一查资料,全是依赖属性,路由事件,动画效果等等. ...