codevs1068(dp)
题目链接: http://codevs.cn/problem/1068/
题意: 中文题诶~
思路: dp
用 dp[i][j][k][l] 表示取 i 个 1, j 个 2, k 个 3, l 个 4 时最大贡献为多少, 那么初始化为 dp[0][0][0][0] = v[1], 其中 v[i] 表示 i 这点的权值. 动态转移方程式为:
int dis = i + * j + * k + * l + ;
if(i) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - ][j][k][l] + v[dis]);
if(j) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j - ][k][l] + v[dis]);
if(k) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j][k - ][l] + v[dis]);
if(l) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j][k][l - ] + v[dis]);
那么答案为 dp[a[1]][a[2]][a[3]][a[4]] 其中 a[i] 为 i 的数目.
代码:
#include <iostream>
using namespace std; const int MAXN = ;
int dp[][][][], a[], v[MAXN]; int main(void){
int n, m, x;
cin >> n >> m;
for(int i = ; i <= n; i++){
cin >> v[i];
}
for(int i = ; i <= m; i++){
cin >> x;
a[x]++;
}
dp[][][][] = v[];
for(int i = ; i <= a[]; i++){
for(int j = ; j <= a[]; j++){
for(int k = ; k <= a[]; k++){
for(int l = ; l <= a[]; l++){
int dis = i + * j + * k + * l + ;
if(i) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - ][j][k][l] + v[dis]);
if(j) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j - ][k][l] + v[dis]);
if(k) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j][k - ][l] + v[dis]);
if(l) dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j][k][l - ] + v[dis]);
}
}
}
}
cout << dp[a[]][a[]][a[]][a[]] << endl;
return ;
}
codevs1068(dp)的更多相关文章
- codevs1068乌龟棋-四维DP,五维如何缩减一维
我们从起点x开始暴力枚举所有决策 于是可以得到如下转移 void dfs(int x,int A,int B,int C,int D,int y) { if (x==n) {ans=max(ans,y ...
- codevs1068乌龟棋
codevs1068乌龟棋 1068 乌龟棋 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamon 题目描述 Descrip ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
- AEAI DP V3.6.0 升级说明,开源综合应用开发平台
AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...
- BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4026 Solved: 1473[Submit] ...
- [斜率优化DP]【学习笔记】【更新中】
参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...
- BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 9812 Solved: 3978[Submit][St ...
随机推荐
- SQL基础(1)
1.SQL简介 (1)什么是SQL? SQL指结构化查询语言 SQL使我们有能力访问数据库 SQL是一种 ANSI 的标准计算机语言 (2)SQL 能做什么? SQL面向数据库执行查询 SQL可从数据 ...
- The Commercial Open-Source Monitoring Landscape
As enterprises have adopted open-source monitoring tools, there is growing market demand by enterpri ...
- Python函数(六)-嵌套函数
嵌套函数就是在一个函数里再嵌套一个或多个函数 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" def First(): pri ...
- 部署和调优 2.0 squid服务介绍
Squid 是比较知名的代理软件, 它不仅可以跑在 Linux 上还可以跑在 Windows 以及 Unix上,它的技术已经非常成熟.目前使用 Squid 的用户也是十分广泛的.Squid 与 Lin ...
- python笔记--4--面向对象
面向对象 Python中对象的概念很广泛,Python中的一切内容都可以称为对象,除了数字.字符串.列表.元组.字典.集合.range对象.zip对象等等,函数也是对象,类也是对象. 在Python中 ...
- ThinkPHP的URL模式
ThinkPHP的URL模式有四种,默认是PATHINFO模式,其他三种分别为:普通模式.REWRITE和兼容模式. 一.PATHINFO模式 浏览器输入格式为: http://localhost/d ...
- node Util 模块
该util模块主要设计用于支持Node.js自己的内部API的需求.但是,许多实用程序对于应用程序和模块开发人员也很有用.它可以通过以下方式访问: const util = require('util ...
- WebSocket详解(一):初步认识WebSocket技术
1.什么是Socket?什么是WebSocket? 对于第1次听说WebSocket技术的人来说,两者有什么区别?websocket是仅仅将socket的概念移植到浏览器中的实现吗? 我们知道,在网络 ...
- 用bat写的一个小病毒
最近看了一点bat的知识,具体说是看了一个博客:http://blog.csdn.net/qsyzb/article/details/17364581 用了三天才看完=.=,感觉作者整理整理可以把博客 ...
- Linux 内核与模块调试
一.简介 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核的关键在于你的对内核的深刻理解. 二.方法总结 1)内核模块相关指令 ht ...