• 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
    然后就搞定了

     1 var c:array[0..40] of double;
     2     n,m,a,b,i:longint;
     3     p,q:double;
     4 
     5 begin
     6   readln(m,n,a,b,p,q);
     7   p:=1-p;
     8   q:=1-q;
     9   for i:=m downto 1 do
    10     if a-b+c[i+1]*(p-q)>0 then c[i]:=a+c[i+1]*p
    11     else c[i]:=b+c[i+1]*q;
    12   writeln(c[1]*n:0:5);
    13 end.
    View Code
  • 相关阅读:
    P4149 [IOI2011]Race dsu on tree
    CodeForces
    2020牛客国庆集训派对day2 CHEAP DELIVERIES
    Hero In Maze
    topo排序
    今年暑假不AC
    小国的游戏
    Stall Reservations
    博弈论
    Reversed Words
  • 原文地址:https://www.cnblogs.com/phile/p/4473127.html
Copyright © 2020-2023  润新知