#B4510. [语言月赛 202603] 选课

[语言月赛 202603] 选课

题目背景

错过比赛可以在入门赛结束后继续参加语言月赛同步赛,【赛后补题】也请从同步赛中进入:https://www.luogu.com.cn/contest/316039

题目描述

小 R 的大学中共有 nn 门课程,编号为 1n1\sim n。第 ii 门课程有 kik_i 门先修课,编号分别为 ai,1,ai,2,,ai,kia_{i,1},a_{i,2},\cdots,a_{i,k_i}

每门课程都有三种可能的状态:未选、通过、挂科。初始时所有课程均为“未选”状态。

小 R 每次可以选择任意多门课程学习,但是必须满足以下条件:

  • 被选择的每门课程的所有先修课程必须为“通过”状态;
  • 被选择的每门课程必须为“未选”或“挂科”状态。

在一门课程结束后,若她的考试成绩大于等于 6060 分,则该课程状态变成“通过”;否则该课程状态变成“挂科”。

现在依次给出 mm 次询问,每次询问给出小 R 选择的所有课程编号以及每门课程的考试成绩。请你先判断她选择的课程是否符合上述两个条件,若符合条件,再更新所选课程的状态。若她的选择不符合条件,无论输入的考试成绩为何值,都不更新课程状态。

保证先修课关系不会成环。也就是说,存在一种选课顺序,使得小 R 可以通过所有课程。

输入格式

第一行两个整数 n,mn,m,表示课程数量和询问次数。

接下来 nn 行,第 i+1i+1 行的第一个整数 kik_i 表示第 ii 门课的先修课数量,接下来 kik_i 个整数 ai,1,ai,2,,ai,kia_{i,1},a_{i,2},\cdots,a_{i,k_i} 表示第 ii 门课的所有先修课编号。

接下来 mm 行,每行描述一次询问。第一个整数 tt 表示选择的课程数量,接下来 tt 个整数 x1,x2,,xtx_1,x_2,\cdots,x_t 表示她选择的课程编号,接下来 tt 个整数 s1,s2,,sts_1,s_2,\cdots,s_t 表示她在对应课程的考试成绩。

输出格式

mm 行,依次回答所有询问,格式如下:

  • 若小 R 的选择不符合条件,输出 Error
  • 若小 R 的选择符合条件,输出一个长度为 tt 的字符串。若第 jj 门课程状态变更为“考试已通过”,则第 jj 个字符为 P,否则第 jj 个字符为 F
4 4
1 2
0
1 2
2 1 3
3 1 3 2 87 51 92
1 2 79
2 1 3 48 97
1 4 80
Error
P
FP
Error
4 4
0
0
0
0
2 1 3 76 48
3 1 2 4 93 27 64
1 3 59
2 3 4 80 90
PF
Error
F
PP
4 4
1 3
1 3
0
1 1
1 3 100
2 2 3 100 100
2 2 4 100 100
2 2 1 100 100
P
Error
Error
PP

提示

样例解释 #1

第一次询问中,课程 22 是选择的课程 1,31,3 的先修课,且处于“未选”状态,不符合条件一。

第二次询问中,课程 22 的成绩为 796079\ge 60,状态变成“通过”。

第三次询问中,课程 11 的成绩为 48<6048 < 60,状态变成“挂科”,课程 33 的成绩为 976097\ge 60,状态变成“通过”。

第四次询问中,课程 11 是选择的课程 44 的先修课,且处于“挂科”状态,不符合条件一。


样例解释 #2

第一次询问中,课程 11 的成绩为 766076\ge 60,状态变成“通过”,课程 33 的成绩为 48<6048 < 60,状态变成“挂科”。

第二次询问中,选择的课程 11 状态为“通过”,不符合条件二。

第三次询问中,课程 33 的成绩为 59<6059 < 60,状态变成“挂科”。

第四次询问中,课程 33 的成绩为 806080\ge 60,状态变成“通过”,课程 44 的成绩为 906090\ge 60,状态变成“通过”。

本样例满足测试点 343\sim 4 的限制。


样例解释 #3

本样例满足测试点 565\sim 6 的限制。


数据范围

对于全部数据:

  • 1n,m3001\le n,m\le 300
  • 0ki<n0\le k_i < n1ai,jn1\le a_{i,j}\le n1in1\le i\le n1jki1\le j\le k_i);
  • 每次询问满足 1tn1\le t\le n1xin1\le x_i\le n0si1000\le s_i\le 1001it1\le i\le t);
  • 保证同一门课的先修课两两不同,且先修课关系不会成环;
  • 保证同一次询问中小 R 选的课两两不同。

部分分:

  • 对于测试点 121\sim 2(共 2020 分),n,m10n,m\le 10
  • 对于测试点 343\sim 4(共 2020 分),ki=0k_i=01in1\le i\le n)。
  • 对于测试点 565\sim 6(共 2020 分),每次询问满足 si=100s_i=1001it1\le i\le t)。
  • 对于测试点 787\sim 8(共 2020 分),每次询问满足 t=1t=1
  • 对于测试点 9109\sim 10(共 2020 分),无特殊限制。