codevs1068(dp)
2024-09-28 15:20:28
题目链接: 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 ;
}
最新文章
- ACM/ICPC 之 最小割转网络流(POJ3469)
- 实现如下类之间的继承关系,并编写Music类来测试这些类。
- UnWind Segue
- 点击事件touches与ios的手势UIGestureRecognizer
- pouchdb 安装使用
- flex安装时停在计算时间界面的解决办法
- Sublime Text生成html标签快捷键
- margin collapse 之父子关系的DIV
- CSS3中更灵活的布局方式
- 实现js浮点数加、减、乘、除的精确计算(网上很多文章里的方法是不能解决所有js浮点数计算误差的)
- AC自动机总结及板子(不带指针)
- Oracle触发bug(cursor: mutex S),造成数据库服务器CPU接近100%
- android客户端向服务器发送请求中文乱码的问
- eShopOnContainers 看微服务⑤:消息通信
- [PDFBox]后台操作pdf的工具类
- 剑指offer错题记录
- 对类方法进行约束(类的抽象方法ABC+raise抛出异常 )
- Redis 安装、配置、集群
- CoreSight™ Technology
- POJ-1644 To Bet or Not To Bet(概率DP)
热门文章
- HDU1272(并查集判图连通)
- Mybatis-Spring包学习
- Java基础--反射Reflection
- javaScript之NodeList
- 理解和正确使用Java中的断言(assert)
- eclipse 中使用 GreenUML 和 AmasterasUML 自动生成类图
- re.findall(?: ) ?:取消优先获取组的权限
- solr安装部署、solr测试创建core、用solrj 访问solr(索引和搜索)
- 爬取google的搜索结果并保存
- Codeforces 1097F Alex and a TV Show (莫比乌斯反演)