zoukankan      html  css  js  c++  java
  • Treats for the Cows

    传送门
    每次从区间的左端点选择或者从右端点进行选择
    逆着就是从中间进行向两边进行扩展。
    因为左区间是向左边扩展,右区间是向右区间扩展,二维遍历一下左右区间,左区间是从[n,1],右区间是[i+1,n]
    因为当前区间是[i,j],表示已经进行了j - i次,当前是n - (j - i)次操作
    状态转移方程dp[i][j] = max(dp[i + 1][j] + (n - j + i) * a[i], dp[i][j - 1] + a[j] * (n - j + i));

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int N = 2005;
    int a[N];
    int dp[N][N];
    int main(){
    	int n;
    	scanf("%d", &n);
    	for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    	for(int i = 1; i <= n; i++) dp[i][i] = a[i] * n;
    	for(int i = n - 1; i >= 1; i--) {
    		for(int j = i + 1; j <= n; j++) {
    			dp[i][j] = max(dp[i + 1][j] + a[i] * (n + i - j), dp[i][j - 1] + a[j] * (n + i - j));
    		}
    	}
    	printf("%d
    ", dp[1][n]);
    	return 0;
    }
    
  • 相关阅读:
    2. 开关电源.电感
    1. 开关电源.引子
    资源介绍
    3. EMC EMS EMI
    2. 基于MCU应用的EMC指南
    1. 内部管脚电路
    9.150 Predefined macros
    海康安防平台
    Redis常见配置
    利用python检测单词的相似度
  • 原文地址:https://www.cnblogs.com/Emcikem/p/13996063.html
Copyright © 2011-2022 走看看