题意:给你一个数字\(n\)和\(k\)个区间,\(S\)表示所有区间的并的集合,你目前在\(1\),每次可以从集合中选择一个数字向右移动,问有多少种方法从\(1\)走到\(n\). 题解:我们从1开始遍历,\(dp[i]\)表示走到目前走到\(i\)的方案数,再去遍历每一个集合,用\(dp[i]\)更新所有\([i+l[j],i+r[j]]\)中的点,而遍历区间我们可以用差分来\(O(n)\)的运行出来. 代码: int n,k; int l[N],r[N]; ll dp[N]; int ma…