zoukankan      html  css  js  c++  java
  • 猫咪的进化

    题目描述

      对于一只猫咪来说,它是有九条命的。但是并不是所有的猫咪都是这样,只有那些造化很高的猫咪才能死而复生。而且对于这样的猫咪,如果它能够活到第九条命,那么它最终可以变成任何一种它想成为的动物(当然也可以继续做猫咪啦),我们称这样的猫咪为猫神。现在一只获得了进化机会的猫咪,受到了女神snowharmony的考验。
      它拥有t个单位的时间,在每个单位时间里,它可以选择沉默、叫一声“喵”、或者叫两声“喵喵”。对于每个单位时间,均有一个实数v[i],猫咪叫一声可获得v[i]的进化量,叫两声可以获得(v[i])^2的进化量,然而它在某个单位时间如果叫了两声,下一单位时间必须保持沉默来休息。
      女神Snowharmony要求它以一定的方式叫,只有它最终获得了最大的进化量,它才能进化为猫神,从而变为它想成为的动物——人族zsw95。
      请你帮助它计算最大进化量,使他进化为为猫神zsw95。
    

    输入

    第一行一个整数t。
    第二行,t个实数v[i]。
    输出

    最大的进化量,保留四位小数。

    输入样例

    3
    9 2 1

    输出样例

    82.0000
    说明

    1<=t<=800000,-255.00<=v[i]<=255.00
    计算结果不超过maxlongint

    .
    .
    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    using namespace std;
    
    int t;
    double f[800010][3],v[800010];
    
    template <typename _TpRealnumber>
    inline double readr()       
    {
        register int flag = 1;
        register char c = getchar();
        while ((c > '9' || c < '0') && c != '-') 
            c = getchar();
        if (c == '-') flag = -1, c = getchar();
        register _TpRealnumber init = (c & 15);
        while ((c = getchar()) <= '9' && c >= '0') 
            init = init * 10 + (c & 15);
        if (c != '.') return init * flag;
        register _TpRealnumber l = 0.1;
        while ((c = getchar()) <= '9' && c >= '0') 
            init = init + (c & 15) * l, l *= 0.1;
        return init * flag;
    }
    
    int main()
    {
    	scanf("%d",&t);
    	for (int i=1;i<=t;i++)
    		v[i]=readr<double>();
    		//scanf("%lf",&v[i]);
    	memset(f,-0x3f,sizeof(f));
    	f[0][0]=f[0][1]=f[0][1]=0;
    	for (int i=1;i<=t;i++)
    	{
    		f[i][0]=max(max(f[i-1][0],f[i-1][1]),f[i-1][2]);
    		f[i][1]=max(f[i-1][0],f[i-1][1])+v[i];
    		f[i][2]=max(f[i-1][0],f[i-1][1])+v[i]*v[i];
    	}
    	double ans;
    	printf("%0.4lf",max(max(f[t][0],f[t][1]),f[t][2]));
    	return 0;
    }
    
    
  • 相关阅读:
    centos7下安装erlang
    centos7下升级git版本
    pytest失败重跑插件: pytest-rerunfailures使用与坑(全网独家精华)
    pytest-assume插件(全网最详细解释):多重断言执行
    pytest踩坑记:NameError: name 'pytest' is not defined
    pytest-ordering:指定pytest的case运行顺序的插件
    pytest中print的坑
    pytest测试入门篇(ExitCode退出码)
    httprunner3.x遇到的问题(hrun make报错)
    httprunner3.x(入门介绍篇)
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/11094949.html
Copyright © 2011-2022 走看看