CDOJ 1347柱爷的矩阵(二维dp)
柱爷的矩阵
Time Limit: 125/125MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
柱爷能干这么多大事,与他喜爱玩弄矩阵是分不开的。
有一天柱爷创造了一个NN行MM列的的矩阵A,因为一个个造数据太麻烦,所以柱爷只搞了第一列的数据Ai,1,1≤i≤NAi,1,1≤i≤N,其他数据由Ai,j=max(Ai,j−1−Bi,0),1≤i≤N,2≤j≤MAi,j=max(Ai,j−1−Bi,0),1≤i≤N,2≤j≤M 生成。
那么问题来了,柱爷想每行每列取不超过1个数,请问最大的和是多少。
Input
输入包括3行
第一行 2个数N,MN,M
第二行 N个数Ai,1Ai,1
第三行 N个数BiBi
数据保证:
1≤M≤N≤10001≤M≤N≤1000
1≤Ai,1≤1061≤Ai,1≤106
1≤Bi≤Ai,11≤Bi≤Ai,1
Output
输出一个数,即答案
Sample input and output
Sample Input | Sample Output |
---|---|
2 1 6 8 1 5 |
8 |
4 3 5 9 10 3 1 6 7 3 |
16 |
Hint
对于样例2
矩阵A为
5 4 3
9 3
0
10
3 0
3 0 0
10+3+3=16
Source
#include <iostream>
#include <bits/stdc++.h>
using namespace std;int dp[1005][1005];
int mx[1005][1005];
struct node
{int a;int b;
}nod[1005];bool cmp(node a,node b)
{return a.b>b.b;
}int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)scanf("%d",&nod[i].a);for(int i=1;i<=n;i++)scanf("%d",&nod[i].b);sort(nod+1,nod+1+n,cmp);for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){dp[i][j]=mx[i-1][j-1]+max(0,nod[j].a-(i-1)*nod[j].b);mx[i][j]=max(dp[i][j],mx[i][j-1]);}}int ans=0;for(int i=1;i<=m;i++)ans=max(ans,mx[i][n]);cout<<ans<<endl;//cout << "Hello world!" << endl;return 0;
}
CDOJ 1347柱爷的矩阵(二维dp)相关推荐
- CDOJ 1321柱爷的恋爱 (区间dp)
柱爷的恋爱 Time Limit: 1000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit St ...
- P1719 最大加权矩形(二维dp)
P1719 最大加权矩形(二维dp) 原题戳这里 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑 ...
- 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理
problem Dec Accepts: 1284 Submissions: 4572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...
- Efficient Exchange DP 二维DP
YouhaverecentlyacquiredanewjobattheBankforAcquiring Peculiar Currencies. Here people can make paymen ...
- P2380 狗哥采矿 (二维dp)
原题链接:狗哥采矿 - 洛谷 思路:我一开始想的是,一个点往左走还是往上走与 它上面和左边的点走的方向有关系,但是感觉复杂交错.....然后看到了大佬的二维dp,其实Aij往左走,就让它左边的这一条都 ...
- HDU-1493 QQpet exploratory park(概率+二维dp)
第一次做dp 题目 扔骰子,给出扔出每个点的概率,求出到达特定点的概率是多少..这里所有特定点的和并不是100%,每个特定点的计算是将每一次(共十次)经过它的概率都加起来求和.得到100%的情况是将每 ...
- 信息学奥赛一本通1267:【例9.11】01背包问题(二维dp与滚动数组优化)
[题目描述] 一个旅行者有一个最多能装 MM 公斤的背包,现在有 nn 件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,. ...
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图 矩阵二维hash
1567: [JSOI2008]Blue Mary的战役地图 Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提 ...
- C语言用数组编程矩阵,二维数组—矩阵求和(C语言)
昨天上机了,之前上机都觉得题目挺简单的,但昨天的题明显比以前难了好吗!字符串二维数组感觉也没教什么呀..所以我也做了蛮久,现依次把这几道题放在这里留作纪念. 题目1:请写一个程序,对于一个m行m列(2 ...
最新文章
- html流式布局怎么用,css 流式布局什么意思?
- IntelliJ IDEA安装主题详细步骤
- jumpserver 堡垒机环境搭建(图文详解)
- 输入缓冲区对程序的影响及解决方法(多种语言都会出现)
- 拷贝data/data/包名/files文件记下所有文件及文件夹到本地sdcard根目录teddyData_files文件夹下...
- 设计模式(十四):适配器模式
- 蓝桥杯2018年第九届C/C++省赛B组第七题-螺旋折线
- CC2530无线点灯
- Flash Bootloader
- 信道编码与信源编码基本
- Max Script|控制摄像机
- 计算机硬盘容量计算公式
- hadoop 爬虫_这些不用编程的爬虫工具,你一定要知道
- 目录 如何成为一个合格的段子手
- oop-klass_在PHP和MySQL中处理时间和日期-OOP版本
- 批量给word添加水印,word魔方顺利完成
- 好看的黑色响应式滚动式动态背景个人导航HTML源码
- BZOJ 3426 CodeChef/CHANGE
- android只编译release版本
- 如何利用计算机班级成绩分析,北京自考计算机应用基础课成绩分析报告