#1695. [Usaco2007 Demo]Walk the Talk

内存限制:64 MiB 时间限制:5 Sec


Farmer John has set up a puzzle for his cows to solve. At the entrance to the barn, he has laid out an H x W (1 <= H <= 30, 1 <= W <= 30) grid of letters. Before a cow can enter the barn, she must spell out a valid English word by jumping from square to square, creating a sequence of letters. She can start at any square but may only jump to a subsequent square that is located to the right and/or above the current square (i.e., neither to the left nor lower). The next square can be any distance from the current one since the cows are world-class jumpers! No two cows may traverse the exact same path, although two cows are allowed to spell the same word via different paths. As an example, consider this grid (presuming 'TO' and 'OX' are words): T X X O T X Q T X T X Q Four paths are valid, all spelling 'TO' (one spelling requires a 'T' from the bottom row and an 'O' from the top row). 'OX' is a valid word, but would require jumping to an 'X' square left of the 'O', which is not allowed. Given the grid and a list of valid words, compute the number of cows that can enter the barn without any cow repeating a path. The file `dict.txt' will be available and will contain the list of valid words, one per line. See a copy of it at http://ace.delos.com/usaco/dict-twalk.txt .


* Line 1: Two integers: H and W * Lines 2..H+1: Each line contains W characters, without spaces, representing a row in the grid. The first row is the top row. The first character in each row is the left-most character.


* Line 1: The number of cows that can enter the barn without repeating a path.



3 4




4 cows can enter the barn, each one spelling out one of the 'TO's.