百度之星 初赛B
Posted HelloWorld!--By-MJY
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度之星 初赛B相关的知识,希望对你有一定的参考价值。
HDU 5696
暴力 莫名的东西
#include<stdio.h> #include<algorithm> #include<stdlib.h> #include<cstring> #include<string> #include<cmath> #include<vector> #include<queue> #include<map> using namespace std; #define ll __int64 #define MAXN 100010 #define inf 1000000000 ll z[MAXN]; ll dp[MAXN]; int main() { int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) scanf("%I64d",&z[i]); memset(dp,-1,sizeof(dp)); for(int i=1;i<=n;i++) { int l,r; l=r=i; ll Min=z[i]; dp[1]=max(dp[1],z[i]*z[i]); while(1) { if(l==1&&r==n) break; if(l!=1&&(r==n||z[l-1]>z[r+1])) Min=min(Min,z[--l]); else Min=min(Min,z[++r]); dp[r-l+1]=max(z[i]*Min,dp[r-l+1]); if(z[l-1]>z[i]||z[r+1]>z[i]) break; } } for(int i=1;i<=n;i++) printf("%I64d\\n",dp[i]); } return 0; }
以上是关于百度之星 初赛B的主要内容,如果未能解决你的问题,请参考以下文章