luogu#P3552. [POI2013] SPA-Walk

[POI2013] SPA-Walk

题目描述

The names of towns in Byteotia are unique sequences of exactly nn bits.

There are 2nk2^n-k towns in Byteotia, and thus,only kk sequences of nn bits do not correspond to any town.

Some pairs of towns are connected with roads.

Specifically, two towns are directly linked by a road if and only if their names differ in a single bit.

The roads do not cross outside of towns.

Byteasar intends to take a stroll - he intends to walk from the town xx to the town yy, taking the existing roads.

Your task is to write a program that will determine if such a walk is possible.

有2^n个长度为n的01串,两个01串之间有边当且仅当这两个01串只有一位不同,现在从这2n个串中拿掉k个,问指定两个串之间能否到达

输入格式

In the first line of the standard input, there are two integers,nn and kk(1n601\le n\le 60, 0k1 000 0000\le k\le 1\ 000\ 000, k2n1k\le 2^n-1, n×k5 000 000n\times k\le 5\ 000\ 000), separated by a single space.

These are the length of town names in bits and the the number of nn-bit sequences that do not correspond to any town, respectively.

In the second line, there are two strings, separated by a single space, each consisting of nn characters 0 and/or 1.

These are the names of the towns xx and yy.

In the kk lines that follow, all the sequences of nn bits that do not correspond to any town are given, one sequence per line.In the kk lines that follow, all the sequences of nn bits that do not correspond to any town are given, one sequence per line.Each such sequence is a string of nn characters 0 and/or 1.You may assume that xx and yy are not among those kk sequences.

输出格式

Your program should print to the standard output the word TAK (Polish for yes) if walking from the town x to the town y is possible, and the word NIE (Polish for no) otherwise.

4 6
0000 1011
0110
0111
0011
1101
1010
1001

TAK

提示

有2^n个长度为n的01串,两个01串之间有边当且仅当这两个01串只有一位不同,现在从这2n个串中拿掉k个,问指定两个串之间能否到达