BZOJ3421 : Poi2013 Walk
最多只有一个连通块大小大于$nk$,所以用hash表进行BFS的时候只扩展$nk$步即可。
时间复杂度$O(n^2k)$。
#include<cstdio>
typedef long long ll;
const int N=5001000,M=9999991;
int n,m,lim,i,h=1,t,g[M],nxt[N],ed;ll v[N],a[N/5],q[N],x,S,T;char s[70];
inline void del(ll x){
int u=x%M;
v[ed]=x;nxt[ed]=g[u];g[u]=ed++;
}
inline void add(ll x){
int u=x%M;
for(int i=g[u];i;i=nxt[i])if(v[i]==x)return;
v[ed]=x;nxt[ed]=g[u];g[u]=ed++;q[++t]=x;
}
inline ll read(){
ll t=0;
scanf("%s",s);
for(int i=0;i<n;i++)t=t*2+s[i]-'0';
return t;
}
int main(){
scanf("%d%d",&n,&m);lim=n*m+5;
add(S=read());T=read();
for(i=0;i<m;i++)del(a[i]=read());
while(h<=t&&t<=lim){
x=q[h++];
if(x==T)return puts("TAK"),0;
for(i=0;i<n;i++)add(x^(1LL<<i));
}
if(t<=lim)return puts("NIE"),0;
for(h=1,t=ed=i=0;i<M;i++)g[i]=0;
add(T);
for(i=0;i<m;i++)del(a[i]);
while(h<=t&&t<=lim){
x=q[h++];
if(x==S)return puts("TAK"),0;
for(i=0;i<n;i++)add(x^(1LL<<i));
}
return puts(t<=lim?"NIE":"TAK"),0;
}
BZOJ3421 : Poi2013 Walk的更多相关文章
- POI2013题解
POI2013题解 只做了BZ上有的\(13\)道题. 就这样还扔了两道神仙构造和一道计算几何题.所以只剩下十道题了. [BZOJ3414][Poi2013]Inspector 肯定是先二分答案,然后 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- python os.walk()
os.walk()返回三个参数:os.walk(dirpath,dirnames,filenames) for dirpath,dirnames,filenames in os.walk(): 返回d ...
- LYDSY模拟赛day1 Walk
/* 依旧考虑新增 2^20 个点. i 只需要向 i 去掉某一位的 1 的点连边. 这样一来图的边数就被压缩到了 20 · 2^20 + 2n + m,然后 BFS 求出 1 到每个点的最短路即可. ...
- How Google TestsSoftware - Crawl, walk, run.
One of the key ways Google achievesgood results with fewer testers than many companies is that we ra ...
- poj[3093]Margaritas On River Walk
Description One of the more popular activities in San Antonio is to enjoy margaritas in the park alo ...
- os.walk()
os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. walk()方法语法格式如下: os.walk(top[, topdown=True[, onerror=None[ ...
- 精品素材:WALK & RIDE 单页网站模板下载
今天,很高兴能向大家分享一个响应式的,简约风格的 HTML5 单页网站模板.Walk & Ride 这款单页网站模板是现代风格的网页模板,简洁干净,像素完美,特别适合用于推广移动 APP 应用 ...
- 股票投资组合-前进优化方法(Walk forward optimization)
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
随机推荐
- string int 转换
int转stringint n = 0;std::stringstream ss;std::string str;ss<<n;ss>>str;string转intstd::st ...
- hdu 2057 A+B
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 For each test case,print the sum of A and B in h ...
- MySQL基础二
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SEL ...
- 【sicily】卡片游戏
卡片游戏 Time Limit: 1sec Memory Limit:32MB Description 桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张牌 ...
- PGA
Server Process PGA 1.PGA作用 2.PGA構成 1)private sql area 2)session memory 3)sql ...
- STL Map的使用
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力.下面就通过示例记录一下map的使用: 一.向map中 ...
- Shell脚本获取C语言可执行程序返回值
#!/bin/sh #./test是c程序,该程序 返回0 ./test OP_MODE=$? echo $OP_MODE # $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误.
- C++Primer快速浏览笔记-类型转换
bool b = 42; // _b is true_ int i = b; // _i has value 1_ i = 3.14; // _i has value 3_ double pi = i ...
- POJ 1984 Navigation Nightmare 带全并查集
Navigation Nightmare Description Farmer John's pastoral neighborhood has N farms (2 <= N <= ...
- JavaScript模拟函数重载
JavaScript是没有函数重载的,但是我们可以通过其他方法来模拟函数重载,如下所示: <!DOCTYPE html> <html> <head> <met ...