生活随笔
收集整理的這篇文章主要介紹了
猫咪的进化
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
對(duì)于一只貓咪來(lái)說(shuō),它是有九條命的。但是并不是所有的貓咪都是這樣,只有那些造化很高的貓咪才能死而復(fù)生。而且對(duì)于這樣的貓咪,如果它能夠活到第九條命,那么它最終可以變成任何一種它想成為的動(dòng)物(當(dāng)然也可以繼續(xù)做貓咪啦),我們稱(chēng)這樣的貓咪為貓神。現(xiàn)在一只獲得了進(jìn)化機(jī)會(huì)的貓咪,受到了女神snowharmony的考驗(yàn)。它擁有t個(gè)單位的時(shí)間,在每個(gè)單位時(shí)間里,它可以選擇沉默、叫一聲“喵”、或者叫兩聲“喵喵”。對(duì)于每個(gè)單位時(shí)間,均有一個(gè)實(shí)數(shù)v[i],貓咪叫一聲可獲得v[i]的進(jìn)化量,叫兩聲可以獲得(v[i])^2的進(jìn)化量,然而它在某個(gè)單位時(shí)間如果叫了兩聲,下一單位時(shí)間必須保持沉默來(lái)休息。女神Snowharmony要求它以一定的方式叫,只有它最終獲得了最大的進(jìn)化量,它才能進(jìn)化為貓神,從而變?yōu)樗氤蔀榈膭?dòng)物——人族zsw95。請(qǐng)你幫助它計(jì)算最大進(jìn)化量,使他進(jìn)化為為貓神zsw95。
輸入
第一行一個(gè)整數(shù)t。
第二行,t個(gè)實(shí)數(shù)v[i]。
輸出
最大的進(jìn)化量,保留四位小數(shù)。
輸入樣例
3
9 2 1
輸出樣例
82.0000
說(shuō)明
1<=t<=800000,-255.00<=v[i]<=255.00
計(jì)算結(jié)果不超過(guò)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;
}
轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/11094949.html
總結(jié)
以上是生活随笔為你收集整理的猫咪的进化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。