Portal --> broken qwq

Description

  大M成立的怪兽电力公司最近刚建立了一个网站。这个季度共有\(n\)天,第\(i\)天共有\(v[i]\)个用户点击该网站,总的广告价值为\(c[i]\)。     然而大M并不知道该如何计算收入。他定义某一天的收入\((p[i]=min(100*max(v[i..j]),min(c[i..j]))(j>=i)\)。也许\(j\)不同会导致\(p[i]\)不同,大M会选择一个\(j\)使得\(p[i]\)最大。

  大M并不知道该如何算这个季度的每天平均收入。他会随机在\(n\)天中选择\(k\)天\(i_1,i_2...i_k\),则这个季度的每天平均收入就定为\(min(p[i_1],p[i_2]...p[i_k])\)。     你作为他的会计对于他这种计算方法十分不放心。你想要知道在大M的计算下,这个季度的每天平均收入的期望值。

  数据范围:对于100%的数据,\(n<=300000,k<=n,v[i]<=10^7,c[i]<=10^9\)

  

Solution

  首先我们假设我们已经求出了\(p\),那么接下来的答案要怎么算?

​  看到这种最大最小值贡献类的题目。。感觉都有一个比较好的方向就是可以从某一个数作为最值然后反过来计算其贡献

​  比如说在这题里面就是,考虑每一个\(p[i]\)会在多少中选择中有贡献,具体一点就是我们考虑将\(p\)按照从小到大的顺序排列,然后依次从左往右考虑每一个\(p[i]\)的贡献

  对于第\(i\)个位置的\(p\)值,因为这个位置要作为最小值才能有贡献,所以\(i\)前面的数全部都不能选,所以也就是\(\binom {n-i} {k-1}\)种组合(第\(i\)这个位置的数确定要选,然后剩下的\(k-1\)个数只能在后面的\(n-i\)个数里面选),算概率的话就是除以一个总的方案数也就是\(\binom n k\)即可

​  那么现在的问题是,直接求组合数是不行的(没有模数)

  注意到每一个位置乘的系数那个组合数都是\(\binom x {k-1}/\binom n k\)的形式,然后当\(x=n-1\)的时候这个式子是\(=k/n\)的,然后我们发现对于不同的\(i\),在改变的只有\(x\),那我们把这个式子用阶乘的形式写开就发现它可以非常愉快地一路递推回去了(每次\(*(n-i-k+1)/(n-i)\)就可以了)

​   

  然后现在的问题就只剩下怎么求\(p\)了

​  我们观察一下\(p[i]\)的表达式,前半部分是取\(max\)(不递减),后半部分是取\(min\)(不递增),总的又是取\(min\),稍微画一下函数图像之类的就可以发现能更新当前位置的方案一定是前面的\(p\)值或者令题目中的那个\(j\)等于当前位置时候表达式的取值

  所以我们可以直接\(O(n)\)dp一下得到\(p\)

  然后这题就做完啦ovo

  

  代码大概长这个样子

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=300010;
int v[N],c[N],p[N];
long double ans,C;
int n,k; int main(){
#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
#endif
scanf("%d%d",&n,&k);
for (int i=1;i<=n;++i) scanf("%d",v+i);
for (int i=1;i<=n;++i) scanf("%d",c+i);
p[n]=min(v[n]*100,c[n]);
for (int i=n-1;i>=1;--i){
p[i]=max(p[i+1],100*v[i]);
p[i]=min(p[i],c[i]);
}
sort(p+1,p+1+n);
ans=0; C=(1.0*k)/(1.0*n);
for (int i=1;n-i>=k-1;++i){
ans+=1.0*p[i]*C;
C*=(1.0*n-i-k+1)/(1.0*n-i);
}
printf("%.10Lf\n",ans);
}
/*
input
3 2
3 2 1
300 200 300 output
133.333333
*/

profit的更多相关文章

  1. 【HDU 5855】Less Time, More profit(网络流、最小割、最大权闭合子图)

    Less Time, More profit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  2. HDU5855 Less Time, More profit(最大权闭合子图)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5855 Description The city planners plan to build ...

  3. (转) Reinforcement Learning for Profit

    Reinforcement Learning for Profit July 17, 2016 Is RL being used in revenue generating systems today ...

  4. UVA 10581 - Partitioning for fun and profit(数论递推)

    10581 - Partitioning for fun and profit 题目链接 题意:给定m, n,表示分配给n个格子,分配m个数字进去,每一个格子最少1,而且序列要是递增的,问第k个字典序 ...

  5. uva 10581 - Partitioning for fun and profit(记忆化搜索+数论)

    题目链接:uva 10581 - Partitioning for fun and profit 题目大意:给定m,n,k,将m分解成n份,然后依照每份的个数排定字典序,而且划分时要求ai−1≤ai, ...

  6. hdu_5585_Less Time, More profit(二分+最大权闭合图)

    题目链接:hdu_5585_Less Time, More profit 题意: 有n个工厂,每建一个工厂要花费vi,需要时间ti,然后有m个商店,每个商店需要在指定的k个工厂中进货,才能盈利,如果其 ...

  7. [Educational Round 59][Codeforces 1107G. Vasya and Maximum Profit]

    咸鱼了好久...出来冒个泡_(:з」∠)_ 题目连接:1107G - Vasya and Maximum Profit 题目大意:给出\(n,a\)以及长度为\(n\)的数组\(c_i\)和长度为\( ...

  8. [Swift]LeetCode826. 安排工作以达到最大收益 | Most Profit Assigning Work

    We have jobs: difficulty[i] is the difficulty of the ith job, and profit[i] is the profit of the ith ...

  9. [LeetCode] Most Profit Assigning Work 安排最大利润的工作

    We have jobs: difficulty[i] is the difficulty of the ith job, and profit[i] is the profit of the ith ...

  10. Maximum profit of stocks

    https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...

随机推荐

  1. 自动化之UI(autoit)

    自动化 说到自动化,我真的很不喜欢UI这层去做实践.前置条件要求比较严谨,如果不满足特定的前置条件,那么成本实在太大了. 投入与产出差过大,效果打折扣.从互联网来说,UI自动化是入门门槛很低的一种实践 ...

  2. JMeter与WireShark

    最近在学习JMeter,刚学了一点皮毛,就掉入了WireShark的坑,我发现在学习的道路上就是不断的给自己挖坑,之前在学习LoadRunner的道路上,遇到的坑更大,就单纯的安装LR就耗费了两个星期 ...

  3. Eclipse 无法编译 或 提示“错误: 找不到或无法加载主类”

    project显示一个红色叹号,通常是.jar文件缺失,在下面找到配置 在libraries中添加add External JARs添加.jar文件

  4. 【RL系列】马尔可夫决策过程——Gambler's Problem

    Gambler's Problem,即“赌徒问题”,是一个经典的动态编程里值迭代应用的问题. 在一个掷硬币游戏中,赌徒先下注,如果硬币为正面,赌徒赢回双倍,若是反面,则输掉赌注.赌徒给自己定了一个目标 ...

  5. PayPal接洽苹果 欲承接手机支付外包

    不久前,<华尔街日报>等媒体报道,苹果正计划利用iTunes内部支付功能,推出第三方手机支付服务.美国科技 新闻网站Recode1月30日引述消息人士称,移动支付领军厂商PayPal,目前 ...

  6. nagios监控安装esxi的服务器(宿主机)

    首先,该博文大部分内容来自网络,少部分是自己监控过程中遇到的问题.如果有侵权,请联系告知!!! 现在互联网公司,有能力的都是自己研发监控系统,要么就是zabbix或者小米的监控,还都二次开发等等,可能 ...

  7. 【每日scrum】NO.9

    (1)这是我们冲刺的最后一天,晚上我们的团队进行了收尾工作:第一阶段的任务基本完成,软件主要实现了校园景点照片以及对应的介绍,查询最短路径,查询涉及相关景点的查询,查询全部路径,基本界面的设计,导航功 ...

  8. 【转】utf-8与Unicode的转化

    作者:uuspider链接:https://www.zhihu.com/question/23374078/answer/65352538来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  9. Sqlserver学习研究

    关注关键词 :Sqlserver实用工具配置步骤 1)创建实用工具控制点(UCP) 2)连接到现有UCP 3)相UCP注册SQL Server实例 4)创建数据层应用程序 5)设置资源运行状况策略 6 ...

  10. IE报错:SCRIPT1010: 缺少标识符

    原文 http://keenwon.com/989.html 昨天用IE11测试页面的时候,发现在文档模式调整到IE8的时候,会报错: 看了半天,百思不得其解,后来终于顿悟:delete是javasc ...