比较有意思的一道题
初看肯定是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的更多相关文章

随机推荐

  1. JavaScript的DOM操作(三)

    1.相关元素操作: var a = document.getElementById("id"); var b = a.nextSibling,找a的下一个同辈元素,注意空格 var ...

  2. jquery刷新iframe页面的方法

    1,reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当 ...

  3. MDA系统分析实战--图书馆管理系统

    MDA系统分析实战--图书馆管理系统 本文通过MDA系统分析方法,对图书馆管理系统进行分析,简要叙述系统分析的一般过程.首先,简要介绍什么是MDA:MDA(Model-Driven Architect ...

  4. C#中堆和栈的区别分析(有待更新总结)

    转载:http://blog.csdn.net/zevin/article/details/5721495 一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区 ...

  5. SQL输出矩阵

    数据库环境:SQL SERVER2008R2 需求:用SQL实现如下2个图中的矩阵.            图1和图2都是行列转换的另一个变形,下面直接贴上SQL脚本. 图1的SQL实现 /*利用系统 ...

  6. js操作数据库实现注册和登陆

    自从node-js出现之后,不只是java,php等后端语言可以操作数据库,进行内容的增删改查,javascript简本语言同样具备了该项技能,而且在node下,js具备了很强的操作性和代码的阅读性, ...

  7. QT UI 使一个QWidget里面的元素自动填充满本QWidget

    使一个QWidget里面的元素自动填充满本QWidget: 对象查看器,右键点击本QWidget,选择"布局",为此QWidget增加一个布局. 如果该QWidget只有一个对象, ...

  8. 转载 VC 2010下安装OpenCV2.4.4

    说明: 1.安装平台:32位XP,VS2010: 2.OpenCV 2.4.4不支持VC 6.0: 3.网上有很多用CMake编译OpenCV的安装教程,这里建议先不要自己编译,如果使用预编译好的库有 ...

  9. 如何在本地安装测试ECSHOP 转载

    如何在本地安装测试ECSHOP 如何在本地(自己的电脑)上先安装ECShop 一.创建PHP环境 1.下载AppServ 因为ECShop在线网上商店系统是用PHP语言开发的,所以,在本地架设网店之前 ...

  10. [C#学习]在多线程中如何调用Winform[转]

    问题的产生: 我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉.请问如 ...