#P12761. [POI 2018 R2] 列车员 Conductor

    ID: 12539 Type: RemoteJudge 3000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>动态规划 DP2018线段树POI(波兰)Special Judge

[POI 2018 R2] 列车员 Conductor

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXV Olimpiada Informatyczna — II etap Konduktor

Bajtazar 是拜托尼亚最热门铁路线的列车员。这条线路途经 mm 个车站,编号从 11mm。乘客可在任意车站上下车,为确保所有人持有效票,Bajtazar 需在每对连续车站间查票,但这显然效率低下。

为此,他决定更系统地解决问题。他选出 nn 条最热门的乘客路线,每条路线以一对 ai,bia_i, b_i 表示,意为乘客在车站 aia_i 上车,bib_i 下车。Bajtazar 希望以最少的查票次数,确保每条路线上的乘客至少被查一次,即每条路线 aia_ibib_i 间至少有一次查票。查票不得在车站停靠时进行。

此外,固定查票时机不明智。常客若摸清规律,可能调整路线避开查票。因此,Bajtazar 还想知道所有可能的查票方案。两方案不同,若存在一对连续车站,在一方案中查票而在另一方案中不查。为初步了解,他需计算方案数对 10000000071000000007 取模的结果。

输入格式

第一行包含一个整数 zz (z1)(z \geq 1),表示测试数据组数。随后为各组描述。

每组第一行包含两个整数 m,nm, n (1m109,1n)(1 \leq m \leq 10^9, 1 \leq n),分别表示车站数和路线数。

接下来的 nn 行描述路线,第 ii 行包含两个整数 ai,bia_i, b_i (1ai<bim)(1 \leq a_i < b_i \leq m),表示第 ii 条路线从车站 aia_i 上车,bib_i 下车。每对有序对 (ai,bi)(a_i, b_i) 至多出现一次。

输出格式

输出 zz 行,每行对应一组测试数据,包含两个整数,分别表示满足 Bajtazar 要求的最少查票次数及查票方案数对 10000000071000000007 取模。

2
11 4
1 4
6 8
2 7
9 10
3 2
1 2
2 3
3 5
2 1

提示

样例 1 解释

第一组测试需覆盖四条路线,至少查票三次。一种方案在车站 2,6,92,6,9 离站后查票,其余方案为 {2,7,9},{3,6,9},{3,7,9},{1,6,9}\{2,7,9\}, \{3,6,9\}, \{3,7,9\}, \{1,6,9\},共五种。第二组测试需覆盖两条路线,至少查票两次,仅一种方案。

附加样例

  1. n=4,m=10n=4, m=10
  2. n=3000n=3000,路线 iii+1i+1 相交,i=1,,n1i=1,\ldots,n-1
  3. n=100000n=100000,所有路线区间互不包含。
  4. n=100000n=100000,一次查票可覆盖所有乘客。

所有附加样例中 z=1z=1

NN 为所有 zz 组测试数据的 nn 之和。若程序仅正确输出最少查票次数(每行仍需输出两个整数,第二个整数为 3232 位有符号整数),可获 20%20\% 分数。

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 z10,n15z \leq 10, n \leq 15 1010
22 z100,N5000z \leq 100, N \leq 5000
33 z100,N500000z \leq 100, N \leq 500000,至多三次查票可覆盖所有乘客 1515
44 z100,N500000z \leq 100, N \leq 500000,任意三路线区间交集为空
55 z100,N500000z \leq 100, N \leq 500000 5050