#P13949. [2024多校联盟省选模拟]星际旅行

    ID: 13161 传统题 1500ms 512MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2300图论DFS数据结构构造模拟贪心

[2024多校联盟省选模拟]星际旅行

题目描述

给一张 nn 个点的竞赛图(任意两点之间恰有一条有向边)。每次旅行给定起点星球 ss,并给出 kk 个不能前往的星球 p1,,pkp_1,\dots,p_k(保证 ss 不受影响且这些点两两不同)。

你需要规划一条不重复经过星球的路线,使得经过的星球数量最多;有些询问只需要输出最大可经过的数量。

形式化:求序列 u1,,umu_1,\dots,u_m,满足:

  • u1=su_1=s
  • 对任意 iiui{p1,,pk}u_i\notin\{p_1,\dots,p_k\}
  • uiu_i 两两不同;
  • 1i<m1\le i<m,存在有向边 uiui+1u_i\to u_{i+1}
  • 最大化 mm

输入格式

  • 第一行四个整数 n,q1,q2,Kn,q_1,q_2,K:点数、需要输出方案的询问数、不需要输出方案的询问数、子任务编号(小样例 K=0K=0)。
  • 接下来 nn 行,每行一个长为 nn01 串:第 ii 行第 jj 列为 1 表示 iji\to j 有边。
  • 接下来 q1+q2q_1+q_2 行:每行先给出 s,ks,k,再给出 kk 个整数 p1,,pkp_1,\dots,p_k。前 q1q_1 行需要输出方案,后 q2q_2 行只需输出最大长度。

输出格式

输出 q1+q2q_1+q_2 行:

  • q1q_1 行:先输出 mm,再输出 mm 个整数表示经过的星球。任意一条合法且 mm 最大化的路线均可。
  • q2q_2 行:仅输出一个数 mm
6 3 2 0
000010
101111
100110
100000
000100
101110
6 0
3 1 4
2 0
4 0
4 1 1
5 6 3 5 4 1
3 3 1 5
6 2 6 3 5 4 1
3
1

数据范围与提示

  • 对于所有数据:1n20001\le n\le 20000q150000\le q_1\le 50000q21040\le q_2\le 10^40K50\le K\le 5
测试点 nn\le q1q_1\le q2q_2\le KK\le
1–2 18 500 10410^4 5
3 2000 0 0
4–5 500
6–8 450 5000 1
9–10 2000 0 1000 5
11–12 10 10410^4 1
13–14 2
15–16 5
17–20 5000