LightOJ 1124 - Cricket Ranking
题意:有k个区间[l, r],从每个区间里取一个整数,问k个数和为n的方法数。
题解:显然的,题目可以转化成从k个区间[0, r[i]-l[i]] (1<=i<=k)里取k个数和为s=n-sum(l)的方法数,并令v[i] = r[i]-l[i]。
可以理解成x1+x2+x3+...xn = s的非负整数解的个数,其中xi∈[0, v[i]]。
A*表示我们需要求的多重集合,A*={v[1]*a1, v[2]*a2, ..., v[n]*an},认为a1=a2=a3=..an=1即可,假如选了ri(0<=r<=v[i])个ai,那么xi的值就是ri,并且有r1+r2+r3