dp FOJ 一月月赛C ytaaa

Accept: 57    Submit: 261

Time Limit: 2000 mSec    Memory Limit : 32768 KB

 Problem Description

Ytaaa作为一名特工执行了无数困难的任务,这一次ytaaa收到命令,需要炸毁敌人的一个工厂,为此ytaaa需要制造一批炸弹以供使用。 Ytaaa使用的这种新型炸弹由若干个炸药组成,每个炸药都有它的威力值,而炸弹的威力值为组成这个炸弹的所有炸药的最大威力差的平方,即(max-min)^2,假设一个炸弹有5个炸药组成,威力分别为5 9 8 2 1,那么它的威力为(9-1)^2=64。现在在炸弹的制造流水线上已经有一行n个炸药,由于时间紧迫,ytaaa并没有时间改变它们的顺序,只能确定他们的分组。作为ytaaa的首席顾问,请你帮助ytaaa确定炸药的分组,使制造出的炸弹拥有最大的威力和。

 Input

输入由多组数据组成。第一行为一个正整数n(n<=1000),第二行为n个数,第i个数a[i]为第i个炸药的威力值(0<=a[i]<=1000)。

 Output

对于给定的输入,输出一行一个数,为所有炸弹的最大威力和。

 Sample Input

65 9 8 2 1 6

 Sample Output

77

Cached at 2014-11-16 17:29:14.

Submit  Back  Status

/*************************************************************************
    > File Name: foj.cpp
    > Author: acvcla
    > QQ:
    > Mail: [email protected]
    > Created Time: 2014年11月16日 星期日 12时27分24秒
 ************************************************************************/
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<cstring>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<cstdlib>
#include<ctime>
#include<set>
#include<math.h>
using namespace std;
typedef long long LL;
const int maxn = 1e3 + 10;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define pb push_back
int A[maxn],n;
int d[maxn][maxn],MAX,MIN;
int dp[maxn][2];
int main(){
		while(~scanf("%d",&n)){
			rep(i,1,n)scanf("%d",A+i);
			memset(d,0,sizeof d);
			memset(dp,0,sizeof dp);
			for(int i=1;i<=n-1;i++)
			for(int j=i;j<=n;j++){
				if(i==j){
					MAX=MIN=A[i];
					continue;
				}
				MAX=max(MAX,A[j]);
				MIN=min(MIN,A[j]);
				d[i][j]=(MAX-MIN)*(MAX-MIN);
			}
			for(int i=1;i<=n;i++){
				for(int j=i-1;j>=1;j--){
					dp[i][0]=max(dp[i-1][0],dp[i-1][1]);
					dp[i][1]=max(dp[i][1],dp[j][0]+d[j][i]);
				}
			}
			int ans=max(dp[n][0],dp[n][1]);
			printf("%d\n",ans);
		}
		return 0;
}
时间: 2024-10-26 04:23:19

dp FOJ 一月月赛C ytaaa的相关文章

FOJ有奖月赛-2016年8月 Problem A Daxia &amp; Wzc&#39;s problem(找规律)

Problem A Daxia & Wzc's problem Accept: 42    Submit: 228Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得到新数列A(1); 然后让Daxia求出数列A(

CTF-安恒19年一月月赛部分writeup

CTF-安恒19年一月月赛部分writeup MISC1-赢战2019 是一道图片隐写题 linux下可以正常打开图片,首先到binwalk分析一下. 里面有东西,foremost分离一下 有一张二维码,扫一下看看 好吧 不是flag,继续分析图片,在winhex没有发现异常,那么上神器StegSolve分析一下 第一次翻了一遍图层没发现,眼瞎第二次才看见 flag{You_ARE_SOsmart} 提交md5即可 MISC2-memory 内存取证 既然是内存取证直接上volatility 首

FOJ 10月赛题 FOJ2198~2204

A题. 发现是递推可以解决这道题,a[n]=6*a[n-1]-a[n-2].因为是求和,可以通过一个三维矩阵加速整个计算过程,主要是预处理出2^k时的矩阵,可以通过这道题 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #define LL long long 6 using namespace std; 7 8 const int

zstu19一月月赛 duxing201606的原味鸡树

duxing201606的原味鸡树 题意: 给定一颗有n(n<=1e9)个节点的完全二叉树,1e5次询问,问某个节点有几个子节点. 思路: 自己在月赛上没有思路,问了zfq才知道. 设两个指标,L.R,因为是范围,所以每次L向左孩子一直下去,R向右孩子一直下去,每次下探答案就要加上2的i次,L-R间就是根节点所表示的范围.当n出了L,R区间,退出. #include <algorithm> #include <iterator> #include <iostream&g

FOJ有奖月赛-2016年4月(校赛热身赛)

A.ABCDEFG 题意:给出一个由abcdefg(大/小)组成的字符串,计算写这些字符串要多少笔. 题解:先打一个前七个大小写字母笔画的表,之后用这个求和即可. 代码: 1 /*A*/ 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 6 int a[7]={1,1,1,2,1,2,1}; 7 int A[7]={3,2,1,2,3,3,1}; 8 9 int main() 10 { 11 int T;

2015年NEUACM一月月赛

A Money , money 时间限制: 1 Sec  内存限制: 128 MB 提交: 15  解决: 14 [提交][状态][讨论版] 题目描述 Small K seen recently stock market really too violent, so he want to choose some ways to earn money. At every month, he can use three ways to manage his money . For example ,

2015年NEUACM一月月赛 J: Eliminate zero AC

问题 J: Eliminate zero AC 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Last night,Kid submitted a problem for many times but he got many WA,so he is sad.Out of sympathy, his coach gave him a very simple problem so that Kid can solve it quickly. The problem is to sel

2015年NEUACM一月月赛 C

问题 C: Sum?Sum! 时间限制: 1 Sec  内存限制: 128 MB提交: 653  解决: 176[提交][状态][讨论版] 题目描述 Kid want to learn math better.Now Kid know how to calculate the sum of 1 to n in a short time.But this time,he is given a much more difficult question——to calculate the sum of

2015年NEUACM一月月赛 J

问题 J: Eliminate zero AC 时间限制: 1 Sec  内存限制: 128 MB提交: 332  解决: 131[提交][状态][讨论版] 题目描述 Last night,Kid submitted a problem for many times but he got many WA,so he is sad.Out of sympathy, his coach gave him a very simple problem so that Kid can solve it q