zoukankan      html  css  js  c++  java
  • 数学【p1412】 经营与开发(秦九韶算法)

    z

    你没有发现两个字里的blog都不一样嘛 qwq

    题目描述-->P1412 经营与开发

    分析

    虽然看到(Rank_1)已经有了解释.

    但我认为我能BB的更好

    我还是决定来写一篇题解. qwq

    列式

    根据题意,我们很容易列出式子.(瞎j8写.

    (变量名与题目描述相同.

    (a_1 imes w+ (1-0.01 imes k) imes w imes a_2+(1-0.01 imes k) imes w imes(1-0.01 imes k) imes a_3+dots)

    其中((1-0.01 imes k) imes w)代表新的能力值.

    提取公因式(w). (是叫公因式还是公因子?,qwq

    新式子
    (w imes[a_1+ (1-0.01 imes k) imes a_2+(1-0.01 imes k) imes(1-0.01 imes k) imes a_3+dots])

    然后又可以写成这种形式.

    (w imes[a_1+ (1-0.01 imes k) imes a_2+(1-0.01 imes k)^2 imes a_3+dots])

    再将([])中的式子变形(根据秦九韶算法.

    得到这样的式子

    (w imes[a_1+ (1-0.01 imes k) imes (a_2+(1-0.01 imes k) imes a_3+dots)])

    然后根据秦九韶一直拆下去.

    (下面以(k^{'})代表((1-0.01 imes k))

    所以我们会得到这样的式子.

    (w*[a_1+k^{'} imes(a_2+k{'} imes(a_3+k{'} imes (a_4+dots)))])

    然后写出来好长好长一段 qwq.

    然后考虑正解为什么是倒着枚举?.

    显然,我们从(1-n)枚举星球,钻头会受到影响.

    即后面的答案会受到影响.(后效性.

    而我们从后向前枚举则可以免去这种影响.(感觉这句话自己说的很虚啊.

    如果不理解这句话的话,请回想秦九韶算法也是从里到外地求解.

    对应到这个题的话我们就相当于从后向前枚举.

    因为秦九韶算法的话,从里到外的拆分会乘上(k^{'}).(钻头能力值会降低.

    简单来讲的话

    我们通过一直乘上(k^{'}),最里层的式子,对应的就是我们最后一次使用钻头的情况.
    同样,次里层的式子,对应的就是我们倒数第二次使用钻头的情况.

    (无法正确组织语言. qwq.

    如果不懂的话还是用笔试一下.

    这样我们模拟的就是这个从里向外求解的过程.

    所以我们求出来的一定会是我们的答案.

    ------------------代码-------------------

    #include<bits/stdc++.h>
    #define R register
    using namespace std;
    int  n;
    double k,c,w;
    struct cod{int idx;double cost;}type[100008];
    double ans;
    int main()
    {
    	scanf("%d%lf%lf%lf",&n,&k,&c,&w);
    	k=1-0.01*k;c=1+0.01*c;//我说我式子一开始带错了你信不信 qwq.
    	for(R int i=1;i<=n;i++)
    		scanf("%d%lf",&type[i].idx,&type[i].cost);
    	for(R int i=n;i>=1;i--)
    		if(type[i].idx==1)ans=max(ans,ans*k+type[i].cost);
    		else ans=max(ans,ans*c-type[i].cost);
    	printf("%.2lf",ans*w);
    }
    
  • 相关阅读:
    Scilab5.5.2 在Centos5.11下binary安装(注:不是源码编译安装)
    《DSP using MATLAB》Problem 9.5
    Java 出现警告 不能读取AppletViewer的属性文件
    《DSP using MATLAB》Problem 9.4
    《DSP using MATLAB》Problem 9.2
    《DSP using MATLAB》Problem 8.46
    《DSP using MATLAB》Problem 8.45
    风力摆?这是不是太简单了点
    树莓派:基于物联网做的指纹打卡器
    Python之面向对象(一)
  • 原文地址:https://www.cnblogs.com/-guz/p/9695566.html
Copyright © 2011-2022 走看看