Accepts: 531
Submissions: 1078
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
Problem Description
"看似随机,实则早已注定"——光羽
度度熊有nnn个随机变量x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn。给定区间[l1,r1],...,[ln,rn][l_1, r_1],...,[l_n, r_n][l1,r1],...,[ln,rn],变量xix_ixi的值会等概率成为区间[li,ri][l_i, r_i][li,ri]中的任意一个整数。
显然这nnn个随机变量的值会有一共∏i=1n(ri−li+1)\prod_{i=1}^{n} (r_i - l_i + 1) ∏i=1n(ri−li+1) 种情况,且每种情况出现的概率为∏i=1n1ri−li+1\prod_{i=1}^{n} \frac{1}{r_i - l_i + 1}∏i=1nri−li+11 。
对于某种情况,令h=max{x1,x2,...,xn}h= \max{ x_1,x_2,...,x_n}h=max{x1,x2,...,xn},定义这种情况的权值为:∏i=1n(h−xi+1)\prod_{i=1}^{n} (h - x_i + 1)∏i=1n(h−xi+1).
度度熊想知道权值的期望是多少?请将答案对109+710^9 + 7109+7取模后输出。
PS:不清楚期望是啥?为什么不问问神奇的百度呢?
Input
第一行一个数,表示数据组数TTT。
每组数据第一行一个整数nnn;接下来nnn行,每行两个数,表示lil_ili和rir_iri。
数据组数T=100,满足:
其中70%的数据满足ri≤100r_i \le 100ri≤100。
Output
每组数据输出一行,每行仅包含一个数,表示期望。
假设答案为pq\frac{p}{q}qp,请输出p×q−1 mod 109+7p \times q^{-1} ~mod~10^9+7p×q−1 mod 109+7,此处q−1q^{-1}q−1为qqq的逆元。
Sample Input
Copy
2
3
2 5
2 4
2 5
3
1 1
2 3
1 1
Sample Output
Copy
875000012
500000010
Hint
第二组数据的解释:序列只有两种情况(1,2,1)和(1,3,1),权值分别为2*1*2=4和3*1*3=9,答案为(4+9)/2,在模域下为500000010。
Statistic | Submit | Clarifications | Back
暴力每个最大值,然后分别求贡献即可。
#include
#include
#include
#include
using namespace std;
#define ll long long
#define mod 1000000007
int n;
ll ans,l[105],r[105];
ll q(ll x,ll y)
{
ll res=1;
while(y)
{
if(y%2)
res=res*x%mod;
x=x*x%mod;
y/=2;
}
return res;
}
ll work(ll l,ll r)
{
if(r