传送门

分析

个人感觉这道题比C简单(一个DP选手最后的尊严)

题目大意是说有三种不同的木棒,第一种木棒有a对,第二种b对,第三种c对,每次取两对不同的木棒组成一个矩形,问最后组成的若干个矩形的面积之和最大是多少

首先我们假设已经选了i个第一种,j个第二种,k个第三种,那么我们可以列成三个状态转移方程

//取第一个和第三个
dp[i + 1][j][k + 1] = max(dp[i + 1][j][k + 1],dp[i][j][k] + 1ll * x[i + 1] * z[k + 1]);
//取第二个和第三个
dp[i][j + 1][k + 1] = max(dp[i][j + 1][k + 1],dp[i][j][k] + 1ll * y[j + 1] * z[k + 1]);
//取第一个和第二个
dp[i + 1][j + 1][k] = max(dp[i + 1][j + 1][k],dp[i][j][k] + 1ll * x[i + 1] * y[j + 1]);

最后需要注意一下要让最大的数字相互组合,所以一开始的时候需要将数组sort一下

代码

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <queue>
#include <cstring>
#define debug(x) cout<<#x<<":"<<x<<endl;
#define _CRT_SECURE_NO_WARNINGS
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
// #pragma GCC option("arch=native","tune=native","no-zero-upper")
#pragma GCC target("avx2")
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int T;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
const int N = 210;
int a[N];
int r,g,b;
int x[N],y[N],z[N];
ll dp[N][N][N];bool cmp(int x,int y){return x > y;
}int main(){scanf("%d%d%d",&r,&g,&b);for(int i = 1;i <= r;i++) scanf("%d",&x[i]);for(int i = 1;i <= g;i++) scanf("%d",&y[i]);for(int i = 1;i <= b;i++) scanf("%d",&z[i]);sort(x + 1,x + 1 + r,cmp);sort(y + 1,y + 1 + g,cmp);sort(z + 1,z + 1 + b,cmp);ll ans = 0;for(int i = 0;i <= r;i++)for(int j = 0;j <= g;j++){// dp[i + 1][j + 1][0] = max(dp[i + 1][j + 1][0],dp[i][j][k] + 1ll * x[i + 1] * y[k + 1]);for(int k = 0;k <= b;k++){dp[i + 1][j][k + 1] = max(dp[i + 1][j][k + 1],dp[i][j][k] + 1ll * x[i + 1] * z[k + 1]);dp[i][j + 1][k + 1] = max(dp[i][j + 1][k + 1],dp[i][j][k] + 1ll * y[j + 1] * z[k + 1]);dp[i + 1][j + 1][k] = max(dp[i + 1][j + 1][k],dp[i][j][k] + 1ll * x[i + 1] * y[j + 1]);ans = max(dp[i + 1][j][k + 1],ans);ans = max(dp[i][j + 1][k + 1],ans);ans = max(dp[i + 1][j + 1][k],ans);}}printf("%lld",ans);
}

D. Colored Rectangles相关推荐

  1. Colored Rectangles【简单DP】

    题目描述:原题链接 You are given three multisets of pairs of colored sticks: R pairs of red sticks, the first ...

  2. D. Colored Rectangles[思维dp]

    题意: 3种颜色木棍,每次从两种颜色木棍各选一对组成矩形.求最后所有矩形面积和最大值. #include <cstdio> #include <cstring> #includ ...

  3. CF1398D Colored Rectangles (记忆化搜索DP)

    数据范围只有200,所以我们可以用O(n3)O(n^3)O(n3)的暴力DP 闫氏DP分析法用着是真的爽 #include<cstdio> #include<algorithm> ...

  4. Educational Codeforces Round 93 (Rated for Div. 2) 题解

    目录 A.CF1398A Bad Triangle(模拟) B.CF1398B Substring Removal Game(贪心) C.CF1398C Good Subarrays(映射) D.CF ...

  5. Educational Codeforces Round 93 (Rated for Div. 2)

    A - Bad Triangle 选出三个序列使之不能组成三角形.先把差距最大的选了,枚举中间值.两边之和不大于第三边. #define IO ios::sync_with_stdio(false); ...

  6. react发送和接收请求_React行为编程简介:请求,等待和阻止

    react发送和接收请求 by Luca Matteis 卢卡·马蒂斯(Luca Matteis) React行为编程简介:请求,等待和阻止 (An intro to Behavioral Progr ...

  7. adobe captivate 5.5 中文教程

    adobe captivate 5.5 中文教程 目 录 adobe captivate 5.5 中文教程... 1 目 录... 1 第1节 Adobe Captivate 5.5更新的内容... ...

  8. LVGL之学习篇(一)

    LVGL之学习篇(一) 学习目的 LVGL简介 LVGL本身是一个图形库,前身是litterVGL.其作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以 ...

  9. 二八定律,它是无标度的_第七定律,如果一个接口不能做到,它将模拟它

    二八定律,它是无标度的 If interfaces do form part of an ecosystem and 'think each other' (Third Law), they also ...

最新文章

  1. 深入理解Java的接口和抽象类
  2. NameError: name ‘sess‘ is not defined
  3. 【团队管理】改造团队成员?
  4. 微信小程序自定义组件 插槽
  5. Bootstrap创建拼接式按钮下拉菜单
  6. 安卓自定义view全解:初始化,onDraw函数,onMeasure函数,用户手势事件
  7. WPF特效-实现3D足球效果
  8. mysql的驱动jar包下载
  9. emoji粉色爱心符号_新的emoji又来袭!你们知道这些表情符号的真正含义吗?
  10. 高等数学-不定积分基本公式
  11. pdf复制json不全的问题
  12. Windows事件ID大全
  13. Python,OpenCV制作全透明图,简单的图片
  14. Java 编程要点之并发(Concurrency)详解
  15. Web前端基础体验学习过程1 HTML篇
  16. html3d粒子球,Canvas粒子系统:3D球体
  17. 虚拟机安装MacOS
  18. MATLAB矩阵变换
  19. dns被劫持怎么办,一文说清dns劫持与防御
  20. linux修改英文设置密码,linux 如何修改passwd的密码 设置密码

热门文章

  1. 金数据预约登记工具 引入医院信息管理部门
  2. 福建专科计算机学校排名2015,2015福建专科学校排名及排行榜
  3. 计算机文秘所学的专业知识,18文秘02李荧 随着现代科学技术的发展,计算机已经...
  4. 金山快盘 linux,WPS移动版5.5发布 支持金山快盘双向读写
  5. Pupil dynamics for iris liveness detection 瞳孔活体检测论文翻译
  6. TK1上如何安装teamviewer,完结
  7. 总是腰疼背痛 竟是“穿错鞋”惹的祸
  8. 2021.6~2022.6实习、秋招总结
  9. uip协议,主动发送功能
  10. 最受程序员欢迎的20本书