【HDOJ 5419】 Victor and Toys

n个玩具 m个区间

每一个玩具有一个beauty值 问任选三个区间 三区间的MINleft~MAXright的和的期望值

预处理一个数组 存放每一个位置被几个区间囊括 这样该位置被选择的概率为c(x,3)/c(m,3)

若beauty数组为w 预处理数组a

期望值即为 w[i]*c(a[i],3)/c(m,3) i∈[1,n]

注意防止乘法爆long long

代码例如以下:

#include <iostream>
#include <cstdio>
#include <cstring>
#define ll long long using namespace std; int w[50001];
int ad[50002]; ll C(ll n)//c(n,3)
{
if(n < 3) return 0;
ll ans = 1;
for(int i = 2; i >= 0; --i)//防爆long long
ans = ans*(n-i)/(3-i); return ans;
} ll gcd(ll a,ll b)//约分
{
ll tmp;
while(b)
{
tmp = b;
b = a%b;
a = tmp;
}
return a;
} int main()
{
int t,n,m,i,l,r;
ll fz,fm,gd,lst; scanf("%d",&t);
while(t--)
{
scanf("%d %d",&n,&m);
for(i = 1; i <= n; ++i)
scanf("%d",&w[i]);
memset(ad,0,sizeof(ad));
for(i = 0; i < m; ++i)
{
scanf("%d %d",&l,&r);
ad[l]++;
ad[r+1]--;
}
if(m < 3)//不这样做会越界。 。血的教训
{
puts("0");
continue;
} fm = C(m); fz = lst = 0;
for(i = 1; i <= n; ++i)//预处理被选次数顺带把期望求了。。
{
lst += ad[i];
fz += w[i]*C(lst);
} gd = gcd(fz,fm);
fz /= gd;
fm /= gd;
if(fm == 1) printf("%I64d\n",fz);
else printf("%I64d/%I64d\n",fz,fm);
} return 0;
}

【HDOJ 5419】 Victor and Toys (排列组合)的更多相关文章

  1. HDOJ 5419 Victor and Toys 树状数组

    分母是一定的C(m,3) 树状数组求每一个数能够在那些段中出现,若x出如今了s段中,分子加上w[x]*C(s,3) Victor and Toys Time Limit: 2000/1000 MS ( ...

  2. HDU - 5419 Victor and Toys(组合计数)

    http://acm.hdu.edu.cn/showproblem.php?pid=5419 题意 n个物品,标号1-n,物品i有权值wi.现在有m个区间[l,r],从中任意选三个区间i,j,k,求物 ...

  3. HDU 5419——Victor and Toys——————【线段树|差分前缀和】

    Victor and Toys Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/131072 K (Java/Others ...

  4. 学习sql中的排列组合,在园子里搜着看于是。。。

    学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...

  5. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

  6. 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  7. 【原创】开源.NET排列组合组件KwCombinatorics使用(二)——排列生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  8. 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

  9. hdu1521 排列组合(指数型母函数)

    题意: 有n种物品,并且知道每种物品的数量ki.要求从中选出m件物品的排数.         (全题文末) 知识点: 普通母函数 指数型母函数:(用来求解多重集的排列问题) n个元素,其中a1,a2, ...

随机推荐

  1. springboot自定义常量配置

    现在你建一个类: import org.springframework.boot.context.properties.ConfigurationProperties; /** * Created b ...

  2. ASP.NET 之 Chart Control for .Net Framework

    ps:曾经靠着这张图做了很多的图形报表

  3. Android项目实战_手机安全卫士splash界面

    - 根据代码的类型组织包结构 1. 界面 com.hb.mobilesafe.activities 2. 服务 com.hb.mobilesafe.services 3. 业务逻辑 com.hb.mo ...

  4. 【译】x86程序员手册07 - 2.5操作数选择

    2.5 Operand Selection 操作数选择 An instruction can act on zero or more operands, which are the data mani ...

  5. 【译】x86程序员手册06 - 2.4指令格式

    2.4 Instruction Format 指令格式 The information encoded in an 80386 instruction includes a specification ...

  6. P2639 [USACO09OCT]Bessie的体重问题 【背包问题】

    题目描述 Bessie像她的诸多姊妹一样,因为从Farmer John的草地吃了太多美味的草而长出了太多的赘肉.所以FJ将她置于一个及其严格的节食计划之中.她每天不能吃多过H (5 <= H & ...

  7. 23.match_phrase_prefix实现search-time搜索推荐

    主要知识点: 搜索推荐的使用场景 用法 原理 一.搜索推荐的使用场景 搜索推荐,就是在你做搜索时,当你写出一部搜索词时,es会自提示接下来要写的词,比如当你在搜索hello w 时,如果es中有如下文 ...

  8. Keil-MDK编译完成后代码大小

    Code 代表执行的代码,程序中所有的函数都位于此处. RO-data 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处. RW-data 代表已初始化的读写数据,程序中定义并且初始化的全局 ...

  9. PAT 1118 Birds in Forest

    Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in ...

  10. SFTP文件上传下载

    http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html  (转载)