序列期望

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 247    Accepted Submission(s): 119

Problem Description 
“看似随机,实则早已注定”——光羽

度度熊有n个随机变量x1,x2,...,xnx1,x2,...,xn。给定区间[l1,r1],...,[ln,rn][l1,r1],...,[ln,rn],变量xixi的值会等概率成为区间[li,ri][li,ri]中的任意一个整数。

显然这n个随机变量的值会有一共∏ni=1(ri−li+1)∏i=1n(ri−li+1) 种情况,且每种情况出现的概率为∏ni=11ri−li+1∏i=1n1ri−li+1

对于某种情况,令h=maxx1,x2,...,xnh=maxx1,x2,...,xn,定义这种情况的权值为:∏ni=1(h−xi+1)∏i=1n(h−xi+1).

度度熊想知道权值的期望是多少?请将答案对109+7取模后输出。

PS:不清楚期望是啥?为什么不问问神奇的百度呢?

Input 
第一行一个数,表示数据组数T。

每组数据第一行一个整数n;接下来n行,每行两个数,表示li和ri。

数据组数T=100,满足:

−1≤n≤100−1≤n≤100 
−1≤li≤ri≤104−1≤li≤ri≤104

其中70%的数据满足ri≤100。

Output 
每组数据输出一行,每行仅包含一个数,表示期望。

假设答案为pq,请输出p×q−1 mod 109+7,此处q−1为q的逆元。

Sample Input 


2 5 
2 4 
2 5 

1 1 
2 3 
1 1

Sample Output 
875000012 
500000010

Hint

第二组数据的解释:序列只有两种情况(1,2,1)和(1,3,1),权值分别为2*1*2=4和3*1*3=9,答案为(4+9)/2,在模域下为500000010。

 
 概率期望本来就学的好菜aaa!这道题还是挺有意思的。可以暴力枚举每一个最大值M,计算对应做出的贡献。而至少出现了一次M并且M是出现的最大值的概率就是每一段区间出现l[i]-M的贡献减去l[i]-(M-1)的贡献,因为每种情况出现的概率是,我们先把每个M的贡献加起来最后除以每种情况的概率就是答案。
#include<iostream>
#include<cstdio>
#include<algorithm>
#define RG register
#define ll long long
#define mod 1000000007
using namespace std; int n;
ll l[], r[]; inline ll mpow ( ll a, ll b ) {
ll ans = ;
for ( ; b; b >>= , a = a * a % mod )
if ( b & ) ans = ans * a % mod;
return ans;
} int main ( ) {
int T;
scanf ( "%d", &T );
while ( T -- ) {
scanf ( "%d", &n );
ll sum = , MI = , MA = ;
for ( int i = ; i <= n; i ++ ) {
scanf ( "%I64d%I64d", &l[i], &r[i] );
sum = sum * ( r[i] - l[i] + ) % mod;
MI = max( l[i], MI );
MA = max( MA, r[i] );
}
ll ans = ;
for ( RG ll h = MI; h <= MA; h ++ ) {
ll sum1 = , sum2 = ;
for ( RG int i = ; i <= n; i ++ ) {
ll L = l[i], R = min ( h, r[i] );
L = h - L + , R = h - R + ;
sum1 = ( L + R ) * ( L - R + ) / * sum1 % mod;
}
for ( RG int i = ; i <= n; i ++ ) {
ll L = l[i], R = min ( h - , r[i] );
L = h - L + , R = h - R + ;
sum2 = ( L + R ) * ( L - R + ) / * sum2 % mod;
}
ans = ( ans + ( sum1 - sum2 + mod ) % mod ) % mod;
}
ans = ans * mpow( sum, mod - ) % mod;
printf ( "%I64d\n", ans );
}
return ;
}

【HDU】6410:序列期望的更多相关文章

  1. HDU 5984 数学期望

    对长为L的棒子随机取一点分割两部分,抛弃左边一部分,重复过程,直到长度小于d,问操作次数的期望. 区域赛的题,比较基础的概率论,我记得教材上有道很像的题,对1/len积分,$ln(L)-ln(d)+1 ...

  2. HDU 5570 balls 期望 数学

    balls Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5570 De ...

  3. poj 2096 Collecting Bugs && ZOJ 3329 One Person Game && hdu 4035 Maze——期望DP

    poj 2096 题目:http://poj.org/problem?id=2096 f[ i ][ j ] 表示收集了 i 个 n 的那个. j 个 s 的那个的期望步数. #include< ...

  4. hdu 5159 Card (期望)

    Problem Description There are x cards on the desk, they are numbered from 1 to x. The score of the c ...

  5. hdu 5248 序列变换(二分枚举)

    Problem Description 给定序列A={A1,A2,...,An}, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:Bi<Bi+,≤i<N). 我们 ...

  6. hdu 5245 Joyful(期望的计算,好题)

    Problem Description Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to pain ...

  7. hdu 5256 序列变换 (LIS变形)

    序列变换 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. Maze HDU - 4035(期望dp)

    When wake up, lxhgww find himself in a huge maze. The maze consisted by N rooms and tunnels connecti ...

  9. HDU 6348 序列计数 (树状数组 + DP)

    序列计数 Time Limit: 4500/4000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Subm ...

随机推荐

  1. CSS Sprite笔记

    1. 什么是CSS Sprite 将一些碎小的图片拼接为一张大点的图片来使用,目的是为了减少浏览器的http请求次数以提高网页的加载速度.每次请求图片都需要跟服务器建立一次连接,并且浏览器的最大并发请 ...

  2. 使用npm安装包失败的解决办法(使用npm国内镜像介绍)

    镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https://regist ...

  3. 安装ssh-keygen

    转载自:http://www.daoan.com/forums/index.php?forumid=5&mods=topicdisplay&postid=4 sudo apt-get ...

  4. 2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest

    2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest A - Arranging Wine 题目描述:有\(R\)个红箱和\(W\)个白箱,将这 ...

  5. LNMP结合discuz的配置

    一.安装discuz 配置参照LAMP结合discuz的第一部分 不要忘记了 添加hosts~!!!! ===============我是分割线.========================== ...

  6. PDO和mysqli对比

    PHP中,如何选择PDO和mysqli呢?本文做个简单的比较 1)总的比较   PDO MYSQLI 数据库支持 12种不同的数据库支持 支持MYSQL API OOP OOP和过程 命名参数 支持 ...

  7. Django 中form的用法

    form的主要作用:1.在html中生成表单框架,2.验证数据(实话实说,很简洁,但不实用,灵活性差) from django.db import models # Create your model ...

  8. 深度学习方法(十二):卷积神经网络结构变化——Spatial Transformer Networks

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 今天具体介绍一个Google ...

  9. [你必须知道的.NET]第十七回:貌合神离:覆写和重载

    本文将介绍以下内容: 什么是覆写,什么是重载 覆写与重载的区别 覆写与重载在多态特性中的应用 1. 引言 覆写(override)与重载(overload),是成就.NET面向对象多态特性的基本技术之 ...

  10. Java学习(匿名对象、内部类、包、import、代码块)

    一.匿名对象 概念:匿名对象是指在创建对象时,只有创建的语句,却没有把对象地址值赋给某个变量. 特点: (1)匿名对象直接使用,没有变量名.当做形参使用. new Person().name=&quo ...