可以先对数据预处理一下,保证每根面条的a<b,然后按a降序排序,选出的面条序列肯定是前一根的 a要大于或等于后一根的 b,记录数量,循环遍历整个list,最后取出数量的最大值。我是这样想的,如果有更好的思路,可以分享~
python代码:
n = int(input())
a = []
for i in range(n):
    a.append(list(map(int,input().strip().split())))
# 保证 a < b
for nood in a:
    if nood[0] > nood[1]:
        tmp = nood[0]
        nood[0] = nood[1]
        nood[1] = tmp
# 降序排序
a.sort(reverse=True)
res = []
for i in range(n):
    t = a[i][0]
    count = 1  
    for j in range(i+1,n):
        if t >= a[j][1]:
            count += 1 # 记录面条数量
            t = a[j][0]
    res.append(count)
print(max(res))