首页 > 试题广场 >

小A的线段(easy version)

[编程题]小A的线段(easy version)
  • 热度指数:704 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}在坐标轴的整数点 1\sim n 上给出 m 条闭区间线段,第 i 条线段用其端点 [\,st_i,\,ed_i\,] 描述。

\hspace{15pt}现在要从这 m 条线段中选择若干条,使得每个整数点至少两条所选线段覆盖。求满足条件的选择方案数量;两种方案视为不同,当且仅当存在某条线段在两方案中的"选/不选"状态不同。

\hspace{15pt}答案对 P=998\,244\,353 取模。

输入描述:
\hspace{15pt}第一行输入整数 n,m\;(2\leqq n\leqq 10^5,\ 1\leqq m\leqq 10)
\hspace{15pt}随后 m 行,每行两个整数 st_i,ed_i1\leqq st_i<ed_i\leqq n) 描述一条线段。


输出描述:
\hspace{15pt}输出满足条件的方案数对 998244353 取模的结果。
示例1

输入

5 4
4 5
1 5
3 5
1 4

输出

3
头像 冷艳的西红柿刷牛客
发表于 2025-10-27 12:12:23
#include <iostream> #include <vector> using namespace std; int line[10][2]; int n, m, ans; const int p = 998244353; bool judge(vector 展开全文
头像 丨阿伟丨
发表于 2025-08-29 12:02:13
题目链接 小A的线段(easy version) 题目描述 在坐标轴的整数点 上给出 条闭区间线段,第 条线段用其端点 描述。 现在要从这 条线段中选择若干条,使得每个整数点被至少两条所选线段覆盖。求满足条件的选择方案数量。 两种方案视为不同,当且仅当存在某条线段在两方案中的“选不选”状态 展开全文
头像 greatofdream
发表于 2025-08-26 18:55:53
n, m = map(int, input().split()) edges = [list(map(int, input().split())) for _ in range(m)] boundary = [] for i, e in enumerate(edges): boundary 展开全文