1.​​题目链接​​。中文题就不再解释了,还是套用我们之前的模版,给一个下界就行了,很简单。这里物品的价值,可以直接把V数组去掉,也可以把它赋值为1,消除影响。代码如下:

#include<bits/stdc++.h>
#include <iostream>
#include <cstring>
using namespace std;
int N, M, n1[200], n2[200], i, j, k;
int a[200], b[200];
int main()
{
while (cin >> N >> M)
{
for (i = 0; i < N; i++)
scanf("%d%d", &n1[i], &n2[i]);
memset(a, 0, sizeof(a));
a[0] = 1;
for (i = 0; i<N; i++)
{
memset(b, 0, sizeof(b));
for (j = n1[i]; j <= n2[i] && j <= M; j++)
for (k = 0; k <= M && k + j <= M; k++)
b[k + j] += a[k];
memcpy(a, b, sizeof(b));
}
printf("%d\n", a[M]);
}
return 0;
}