【题解】款待奶牛

题目描述

  Farmer John有n(1≤n≤2000)个美味的食物,他想卖掉它们来赚钱给奶牛。这些食物放在一些箱子里,它们有些有趣的特性:

  (1)这些食物被编号为1-n,每一天Farmer John可以从这排箱子的头部或者尾部取出食物去卖;

  (2)这些食物放得越久,年龄越大,价值越大,食物i有一个初始的价值v(i);

  (3)放了a天后,年龄为a,食物最终的价值为v(i)×a。

给定每一个食物的初始价值v(i),请求出FJ卖掉它们后可以获得的最大价值,第一天出售的食物年龄为1,此后每增加一天食物的年龄就增加1。

输入格式

  第一行,一个整数n;

  第2×n+1行,每行为食物i的初始价值v(i)。

输出格式

  一行,为FJ最终可以获得的最大价值。

输入样例

5

1

3

1

5

2

输出样例

43

题解

  区间dp入门题,暴力即可。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#define MAXN 2002

using namespace std;

int n;
int a[MAXN];
int f[MAXN][MAXN];
int ans;

int main()
{
    cin >> n;
    for(register int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    for(register int i = 0; i <= n; i++)
    {
        for(register int j = n + 1; j > i; j--)
        {
            f[i][j] = max(f[i - (i >= 1)][j] + a[i] * (i + n - j + 1), f[i][j + (j <= n)] + a[j] * (i + n - j + 1));
        }
    }
    for(register int i = 0; i <= n; i++)
    {
        ans = max(ans, f[i][i + 1]);
    }
    cout << ans;
    return 0;
} 

参考程序

原文地址:https://www.cnblogs.com/kcn999/p/10805034.html

时间: 2024-10-10 14:11:40

【题解】款待奶牛的相关文章

款待奶牛(treat)

款待奶牛(treat) 题目描述 FJ有n(1≤n≤2000)个美味的食物,他想卖掉它们来赚钱给奶牛.这些食物放在一些箱子里,它们有些有趣的特性:(1)这些食物被编号为1-n,每一天FJ可以从这排箱子的头部或者尾部取出食物去卖:(2)这些食物放得越久,年龄越大,价值越大,食物i有一个初始的价值V(i):(3)放了a天后,年龄为a,食物最终的价值为V(i)×a.给定每一个食物的初始价值v(i),请求出FJ卖掉它们后可以获得的最大价值,第一天出售的食物的年龄为1,此后每增加一天食物的年龄就增加1.

矩阵乘法专题2——bzoj 1706 [usaco2007 Nov] relays 奶牛接力跑 题解

转载请注明:http://blog.csdn.net/jiangshibiao/article/details/24960651 [原题] 1706: [usaco2007 Nov]relays 奶牛接力跑 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 340  Solved: 162 [Submit][Status] Description FJ的N(2 <= N <= 1,000,000)头奶牛选择了接力跑作为她们的日常锻炼项目.至于进行接力

【题解】黑白奶牛

题目描述 有N只奶牛从左往右排成一行,编号是1至N.这N只奶牛当中,有一些奶牛是黑色的,其余的是白色的. color[i]表示第i只奶牛的颜色,如果color[i]=0则表示第i头奶牛是黑色的,如果color[i]=1则表示第i头奶牛是白色的. 六一奶牛儿童节快到了,农场主Farmer John要从这N头奶牛当中,挑选尽可能多的奶牛去参加晚会. Farmer John挑选奶牛的原则是:挑选编号是连续的一段奶牛,这一段奶牛的颜色必须全部是白色的. Farmer John有一个魔法棒,每用一次魔法棒

【题解】幸运奶牛

题目描述 有N头奶牛从左往右排成一行,编号是1至N.如果某头奶牛的编号是2的倍数或者是3的倍数,那么这头奶牛就是幸运奶牛.这N头奶牛中,总共有多少头奶牛是幸运奶牛? 输入输出格式 输入格式 一行,一个整数N. 输出格式 一行,一个整数,表示幸运奶牛的数量. 输入输出样例 输入样例 10 输出样例 7 说明 数据规模 对于70%的数据,1≤N≤10000. 对于100%的数据,1≤N≤2000000000. 题解 小学奥数,直接上代码. #include <cstdio> int main()

题解 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows

题解 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 题目链接 数据规模16-20的都是状压 如果要每一位都压序号的话空间肯定是不够的,所以每一位只能是0或1.1表示有这头牛,0表示没有这头牛.显然每个位置的选择和他两边的牛有关,所以我们就可以定义这样的状态: f[i][j]表示使用集合i的牛,其中最后一头牛的序号为j时的总方案数.答案从f[(1 << n) - 1][n]累加即可. 转移也比较好想,从i中枚举选出倒数第二头牛,作为子状态的最后一头牛,注意边界情况.

题解 P2986 [USACO10MAR]伟大的奶牛聚集

题解 P2986 [USACO10MAR]伟大的奶牛聚集 题目链接 很好的一道树形dp的题目,我们观察每一个点i的答案,发现答案 f[i] 由两部分组成: A1.i所有子树中的犇集中到i点 A2.除了i的子树中的所有犇集中到i的父亲节点,再走到i点 f[i] = A1 + A2 我们发现i的答案和i的孩子有关,也和i的父亲有关.一般这样的问题用两次dfs就可以解决.(由于选谁是根节点都无所谓,以下以1号节点为根) 第一次dfs我们求出每一个点的 f[i], 意思是以i为根节点的子树中的牛集中到i

洛谷 P1824 进击的奶牛 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接 :https://www.luogu.org/problem/show?pid=1824 题目描述 Farmer John建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,...,xN (0<=xi<=1,000,000,000). 他的C(2<=C<=N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒.为了防止牛之间的互相打斗,Fa

【题解】Luogu P3052 【USACO12】摩天大楼里的奶牛Cows in a Skyscraper

迭代加深搜索基础 题目描述 A little known fact about Bessie and friends is that they love stair climbing races. A better known fact is that cows really don’t like going down stairs. So after the cows finish racing to the top of their favorite skyscraper, they had

奶牛晒衣服(题解)

奶牛晒衣服[问题描述]在熊大妈英明的带领下,时针和他的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情.圣人王担负起了这个重任.洗完衣服后,你就要弄干衣服.衣服在自然条件下用1 的时间可以晒干A 点湿度.抠门的熊大妈买了1 台烘衣机.使用烘衣机可以让你用1 的时间使1件衣服除开自然晒干的A 点湿度外,还可烘干B 点湿度,但在1 的时间内只能对1 件衣服使用.N 件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最