bzoj1389
比较有意思的一道题
初看肯定是dp一类,但好像没什么思路,
先令p=1-p q=1-q
如果我们用常见的f[i]到第i次试验最大利润的话
我们发现不好转移,因为影响因素不仅有价格,还有数量
考虑到原料总量一定,我们考虑用c[i]表示到第i次实验最大利润率
不难发现第m次试验,最大利润率一定是a和b那个较大的
边界是从最后确定的,我们考虑倒推
不妨设在第i此实验时,剩下有w克原料,有x*w的原料做a试验,w*(1-x)的原料做b试验 0<=x<=1
则c[i]=(w*a*x+w*(1-x)*b+c[i+1]*(w*p*x+w*(1-x)*q))/w
整理得c[i]=ax+b(1-x)+c[i+1]*p*x+c[i+1]*(1-x)*q
即c[i]=x(a-b+c[i+1]*(p-q))+b+c[i+1]*q
不难发现是关于x的一次函数,要使c[i]最大我们只要判断a-b+c[i+1]*(p-q)是否大于0即可
大于0 x取1,否则取0
然后就搞定了
var c:array[..] of double;
n,m,a,b,i:longint;
p,q:double; begin
readln(m,n,a,b,p,q);
p:=-p;
q:=-q;
for i:=m downto do
if a-b+c[i+]*(p-q)> then c[i]:=a+c[i+]*p
else c[i]:=b+c[i+]*q;
writeln(c[]*n::);
end.
bzoj1389的更多相关文章
随机推荐
- Spring定时任务,Spring4整合quartz2.2,quartz-scheduler定时任务
Spring4整合quartz2.2,quartz-scheduler定时任务,Spring定时任务 >>>>>>>>>>>>& ...
- media queries 媒体查询使用
media queries 翻译过来就是媒体查询,media 指的媒体类型.那么有哪些类型呢,常用的有 screen(屏幕).打印(print),个人理解就是它所在的不同终端. 常用的用法:1,< ...
- A的ascll吗是多少?
//输入一个字符,返回他的ascll码 #include<stdio.h> int main() { char a; while(scanf("%c",&a)! ...
- “jni.h”: No such file or directory
VS2010解决方案: 进入 “包含目录“ 方式: 右键项目属性页-> 配置属性->VC++目录->包含目录 在”包含目录“中编辑 添加以下路径: C:\Program Files\ ...
- play app to war
project/Build.scala import sbt._ import Keys._ import play.Play.autoImport._ import PlayKeys._ impor ...
- 深入了解shell
接触linux很久了,但一直没有总线,老是尝鲜,什么都想学,但好多没多没有记住,特的总结了一些基本的东西,查了很多资料,不完善的方面我会慢慢的更新…… 操作系统与外部最主要的接口就叫做shell. ...
- android网络图片查看器
package com.itheima.netimageviewer; import java.io.BufferedReader; import java.io.File; import java. ...
- 一个简单的web服务器例子
一个简单的web容器小例子,功能十分简单,只能访问静态资源,对于新手来说还是有一定的意义.主要分三个类 1.server类:主要功能开启socketServer,阻塞server,接收socket访问 ...
- 7-1 DBA顾问培训内容@20141230
1, 逻辑读还是物理读? 查询语句的实际执行计划. F5 预计执行计划. --如何产生实际执行计划 ??. --Session收集指令. workload repository report fo ...
- CSS 组合选择符
CSS 组合选择符 组合选择符说明了两个选择器直接的关系. CSS组合选择符包括各种简单选择符的组合方式. 在 CSS3 中包含了四种组合方式: 后代选取器(以空格分隔) 子元素选择器(以大于号分隔) ...