在坐标轴的整数点 1 n 上给出 m 条闭区间线段,第 i 条线段用其端点 [st_i,ed_i] 描述。 现在要从这 m 条线段中选择若干条,使得每个整数点被至少两条所选线段覆盖。求满足条件的选择方案数量;两种方案视为不同,当且仅当存在某条线段在两方案中的"选/不选"状态不同。 答案对 P=998244353 取模。
第一行输入整数 n,m(2≤ n≤ 10^5,1≤ m≤ 10) 。 随后 m 行,每行两个整数 st_i,ed_i ( 1≤ st_i<ed_i≤ n ) 描述一条线段。
输出满足条件的方案数对 998244353 取模的结果。
5 4 4 5 1 5 3 5 1 4
3
考点:dfs
数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:dfs
一条路走到底再回溯,适合枚举全部方案与连通性判定。
思路框架(dfs 通法 · 非本题专属)
实现要点:回溯时务必把状态恢复干净;必要时加剪枝(可行性剪枝、最优性剪枝)。
复杂度:时间 O(状态数) | 空间 O(递归深度)
该范式的通法易错点
对照本题
样例 1
5 4 / 4 5 / 1 5 / 3 5 / 1 43解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:华为机试编程模拟题5;2024年秋招-蔚来汽车-后端岗笔试。