[USACO23FEB] Problem Setting P

Luogu
IDLGP9131
Time2000ms
Memory512MB
DifficultyP6
USACO2023快速沃尔什变换 FWT状压 DP
**Note: The memory limit for this problem is 512MB, twice the default.** Farmer John created $N(1 \le N \le 10^5)$ problems. He then recruited $M (1 \le M \le 20)$ test-solvers, each of which rated every problem as "easy" or "hard." His goal is now to create a problemset arranged in increasing order of difficulty, consisting of some subset of his $N$ problems arranged in some order. There must exist no pair of problems such that some test-solver thinks the problem later in the order is easy but the problem earlier in the order is hard. Count the number of distinct nonempty problemsets he can form, modulo $10^9+7$. ## Input The first line contains $N$ and $M$. The next $M$ lines each contain a string of length $N$. The $i$-th character of this string is `E` if the test-solver thinks the ith problem is easy, or `H` otherwise. ## Output The number of distinct problemsets FJ can form, modulo $10^9+7$. [samples] ## Note ### Explanation for Sample 1 The nine possible problemsets are as follows: $[1]$ $[1,2]$ $[1,3]$ $[1,3,2]$ $[2]$ $[3]$ $[3,1]$ $[3,2]$ $[3,1,2]$ Note that the order of the problems within the problemset matters. ### SCORING - Inputs $3-4$: $M=1$ - Inputs $5-14$: $M \le 16$ - Inputs $15-22$: No additional constraints.
Samples
Input #1
3 1
EHE
Output #1
9
Input #2
10 6
EHEEEHHEEH
EHHHEEHHHE
EHEHEHEEHH
HEHEEEHEEE
HHEEHEEEHE
EHHEEEEEHE
Output #2
33
API Response (JSON)
{
  "problem": {
    "name": "[USACO23FEB] Problem Setting P",
    "description": {
      "content": "**Note: The memory limit for this problem is 512MB, twice the default.** Farmer John created $N(1 \\le N \\le 10^5)$ problems. He then recruited $M (1 \\le M \\le 20)$ test-solvers, each of which rated e",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9131"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "**Note: The memory limit for this problem is 512MB, twice the default.**\n\nFarmer John created $N(1 \\le N \\le 10^5)$ problems. He then recruited $M (1 \\le M \\le 20)$ test-solvers, each of which rated e...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments