题目传送门

题目大意

给出两个长度为 \(n\) 的 \(01\) 串,问是否可以通过某一位把 \(s\) 变为 \(t\),但是中途不能变为 \(k\) 个 \(01\) 串中任意一个,问是否可行。

\(n\le 60,n\times k\le 5\times 10^6\)

思路

拖了 1 年多,1 年前打了一个双向 BFS ,骗了 \(60\) 分(为我后面看别人的 AC 代码打下了良好基础 (伦敦雾,1 年后,在看了题解之后成功 A 掉此题,我成功了,我不再是以前的那个我了。

好吧,还是言归正传,其实这道题就是一个爆搜然后加上一个剪枝,剪枝就是说你最多只搜 \(n\times k\) 个点,至于为什么我就不知道了。(不过题面都给了 \(n\times k\le 5\times 10^5\) 难道提示还不明显么?)证明的话可以参考 这篇题解 ,反正我是没有看懂。

\(\texttt{Code}\)

using namespace std;

#define Int register int
#define ll long long
#define MAXN 5000005
#define MAXM 1000005
#define mod 2737321 template <typename T> inline void read (T &t){t = 0;char c = getchar();int f = 1;while (c < '0' || c > '9'){if (c == '-') f = -f;c = getchar();}while (c >= '0' && c <= '9'){t = (t << 3) + (t << 1) + c - '0';c = getchar();} t *= f;}
template <typename T,typename ... Args> inline void read (T &t,Args&... args){read (t);read (args...);}
template <typename T> inline void write (T x){if (x < 0){x = -x;putchar ('-');}if (x > 9) write (x / 10);putchar (x % 10 + '0');} ll a[MAXM],to[MAXN],q[MAXN];
int n,k,cnt,h,t,nxt[MAXN],head[mod + 5]; ll getins (){
ll s = 0;
for (Int i = 0,x;i < n;++ i) scanf ("%1d",&x),s = (s << 1) | x;
return s;
} void ins (ll x){
to[++ cnt] = x,nxt[cnt] = head[x % mod],head[x % mod] = cnt;
} void add (ll x){
for (Int i = head[x % mod];i;i = nxt[i])
if (to[i] == x) return ;
ins (x),q[++ t] = x;
} void BFS (ll S,ll T){
h = 1,t = cnt = 0;
memset (head,0,sizeof (head));
for (Int i = 1;i <= k;++ i) ins (a[i]);
add (S);
while (h <= t && t <= n * k){
ll now = q[h ++];
if (now == T) puts ("TAK"),exit (0);
for (Int i = 0;i < n;++ i) add (now ^ (1ll << i));
}
if (t <= n * k) puts ("NIE"),exit (0);
} signed main(){
read (n,k);ll S = getins (),T = getins ();
for (Int i = 1;i <= k;++ i) a[i] = getins ();
BFS (S,T),BFS (T,S);
puts ("TAK");
return 0;
}

题解 [POI2013]SPA-Walk的更多相关文章

  1. POI2013题解

    POI2013题解 只做了BZ上有的\(13\)道题. 就这样还扔了两道神仙构造和一道计算几何题.所以只剩下十道题了. [BZOJ3414][Poi2013]Inspector 肯定是先二分答案,然后 ...

  2. 【题解】[P3557 POI2013]GRA-Tower Defense Game

    [题解][P3557 POI2013]GRA-Tower Defense Game 这道题是真的** 根据题目给的\(k\),可以知道,我们随便放塔,只要不全放一起,一定是一种合法的方案. 直接枚举就 ...

  3. Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解

    Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...

  4. [HG]walk 题解

    前言 学长博客划水,抄题解,差评. 于是我来重新写一篇正常的题解,虽然解法跟标程不一样,但是复杂度是一样的. 题面 题目描述 在比特镇一共有\(n\)个街区,编号依次为\(1\)到\(n\),它们之间 ...

  5. BZOJ3076 & 洛谷3081:[USACO2013 MAR]Hill Walk 山走——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3076 https://www.luogu.org/problemnew/show/P3081#sub ...

  6. 题解报告:hdu 1142 A Walk Through the Forest

    题目链接:acm.hdu.edu.cn/showproblem.php?pid=1142 Problem Description Jimmy experiences a lot of stress a ...

  7. csp-s模拟65Simple,Walk, Travel,棋盘题解

    题面:https://www.cnblogs.com/Juve/articles/11639923.html simple: 考试时只想到的暴力exgcd判断 考虑n,m互质的情况: 我们枚举y,对于 ...

  8. BZOJ3421 : Poi2013 Walk

    最多只有一个连通块大小大于$nk$,所以用hash表进行BFS的时候只扩展$nk$步即可. 时间复杂度$O(n^2k)$. #include<cstdio> typedef long lo ...

  9. Usaco2012-2013 金组 题解 (暂缺Hill walk以及Figue eight)

    https://files.cnblogs.com/files/Winniechen/usaco2012-2013.pdf 做的不是很好,还请见谅! 如果有什么疑问,可以QQ上找我. QQ号:1967 ...

随机推荐

  1. C# 使用正则表达式替换PPT中的文本(附vb.net代码)

    文本介绍如何在C#程序中使用正则表达式替换PPT幻灯片中的指定文本内容.具体操作步骤如下: 1. 在程序中引用Spire.Presentation.dll.两种方法可参考如下: (1)直接在程序中通过 ...

  2. ES6 class——音乐播放器实例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. RHEL7.2下DHCP服务器的搭建

    DHCP(?Dynamic Host Configuration Protocol)是一种帮助计算机从指定的DHCP服务器获取配置信息的自举协议 请求配置信息的计算机叫做DHCP客户端,而提供信息的叫 ...

  4. IO和零拷贝

    I/O介绍 I/O主要为:网络IO(本质是socket文件读取).磁盘IO 每次IO,都要经由两个阶段: 第一步:将数据从文件先加载至内核内存空间(缓冲区),等待数据准备完成,时间较长 第二步:将数据 ...

  5. 关闭Redis服务

    方式1: 方式2:

  6. 循环神经网络LSTM RNN回归:sin曲线预测

    摘要:本篇文章将分享循环神经网络LSTM RNN如何实现回归预测. 本文分享自华为云社区<[Python人工智能] 十四.循环神经网络LSTM RNN回归案例之sin曲线预测 丨[百变AI秀]& ...

  7. ubantu硬盘不足,无法启动

    我的ubantu虚拟机经过我一顿操作后,就起不来了.然后经过多方询问,广集天下良方,最终发现是由于分配的硬件空间不足导致的.现象如下: 通过查看 root@ubantu:/snap# df -h Fi ...

  8. KMP算法的改进

    KMP算法的改进 KMP算法已经在极大程度上提高了子符串的匹配效率,但是仍然有改进的余地. 1. 引入的情景 下面我们就其中的一种情况进行分析: 主串T为"aaaabcde-" 子 ...

  9. Flex语法和常用鼠标手势

    Flex弹性和模型 1.display : flex/inline-flex ;(设置给氟元素) flex : 将对象作为弹性伸缩盒显示: inline-flex : 将对象作为内联块级弹性伸缩显示: ...

  10. Django学习day02随堂笔记

    每日测验 """ 今日考题 1.谈谈你对web框架的认识,简述web框架请求流程 2.python三大主流web框架的区别 3.安装django需要注意的事项有哪些(最少 ...