「UOI-R1」智能推荐

Luogu
IDLGP8893
Time1000ms
Memory128MB
DifficultyP3
O2优化拓扑排序
现在有 $N$ 道题。 天数的编号从 $0$ 开始,每一天你可以做若干道题,你只能做以前推荐过的或者当天推荐的题(每道题只可以做一次)。第一天,智能推荐会推荐 $p$ 道题。 推荐规则如下: 对于第 $i$ 道题,如果有可能被推荐的话,就会有一个题目集合 $s_i$。当且仅当你把 $s_i$ 中每一道题都做出来并且其中有一道题是当天做的,那么下一天就会推荐第 $i$ 题。 你想做完第 $K$ 道题,问至少第几天你才能满足愿望? ## Input 第一行三个整数 $N,K,p$,含义如题目所述。 第二行 $p$ 个整数,表示第一天推荐的题的题号。 第三行一个整数 $R$,表示有 $R$ 条推荐规则。 接下来 $R$ 行,每行包含一条规则,每行格式如下: 一个整数 $v_i$,表示要推荐的题的题号。接着一个整数 $s_i$,表示要使得这道题被推荐,一共要做的题目数量。接下来 $s_i$ 个整数 $p_i$,表示要做的每道题。 ## Output 一个整数表示最少第几天才能满足愿望。 如无论如何,第 $K$ 题都无法完成,则输出 `-1`。 [samples] ## Background 数据已加强。 ## Note **【样例解释 #1】** 第 $0$ 天推了第 $1,2$ 题,都做了。 第 $1$ 推了第 $3$ 题,做了。 第 $2$ 推了第 $4$ 题,做了。 第 $3$ 推了第 $5$ 题,也就是第 $K$ 题,做了。 第 $3$ 天即可做完第 $K$ 题目。 **【样例解释 #2】** 第 $0$ 天推了第 $1$ 题,也就是第 $K$ 题,做了。 第 $0$ 天就做完了。 **【数据范围】** 以下记 $\left| s_i \right|$ 表示推荐规则中第 $i$ 条规则中,如果 $v_i$ 被推荐,要做的所有题。 对于 $30\%$ 的数据,保证 $1 \leq N \leq 100$。 对于 $50\%$ 的数据,保证没有环。 对于 $100\%$ 的数据,保证 $1 \le K,s_i,p_i,v_i \le N \le 5\times 10^3$,$0 \leq R \leq 5 \times 10^3$。$|s_i|$ 互不相同,且对于每一个 $|s_i|$ 都有 $p_i$ 互不相同,$v_i$ 互不相同。
Samples
Input #1
5 5 2
1 2
3
3 2 1 2
4 3 1 2 3
5 3 1 3 4
Output #1
3
Input #2
1 1 1
1
0
Output #2
0
Input #3
7 7 2
1 2
2
3 2 1 2
6 2 1 2
Output #3
-1
Input #4
见文件附件的 rec4.in
Output #4
见文件附件的 rec4.ans
API Response (JSON)
{
  "problem": {
    "name": "「UOI-R1」智能推荐",
    "description": {
      "content": "现在有 $N$ 道题。 天数的编号从 $0$ 开始,每一天你可以做若干道题,你只能做以前推荐过的或者当天推荐的题(每道题只可以做一次)。第一天,智能推荐会推荐 $p$ 道题。 推荐规则如下: 对于第 $i$ 道题,如果有可能被推荐的话,就会有一个题目集合 $s_i$。当且仅当你把 $s_i$ 中每一道题都做出来并且其中有一道题是当天做的,那么下一天就会推荐第 $i$ 题。 你想做完第 $K",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8893"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "现在有 $N$ 道题。\n\n天数的编号从 $0$ 开始,每一天你可以做若干道题,你只能做以前推荐过的或者当天推荐的题(每道题只可以做一次)。第一天,智能推荐会推荐 $p$ 道题。\n\n推荐规则如下:\n\n对于第 $i$ 道题,如果有可能被推荐的话,就会有一个题目集合 $s_i$。当且仅当你把 $s_i$ 中每一道题都做出来并且其中有一道题是当天做的,那么下一天就会推荐第 $i$ 题。\n\n你想做完第 $K...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments