题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5074

题意:

给定一个m*m的矩阵mp。然后给定一个长度为n的序列

sum= mp[a[1]][a[2]]+......+mp[a[n-1]][a[n]];

假设a[i]小于0的话则a[i]能够为1~m之间的随意一个数,求sum的最大值

我们能够枚举第i个位置

然后dp[i][j]=max(dp[i][j],dp[i-1][k]+mp[k][j]) 表示第i个位置在j的最大值;

然后分两种情况

假设a[i]是一个确定的数的话 dp[i][a[i]]=max( dp[i][a[i]],dp[i-1][j]+mp[j][a[i]] )

假设不确定的话 就仅仅能枚举a[i]了 dp[i][k]=max(dp[i][k],dp[i-1][j]+mp[j][k]);

这两种情况都是建立在前一个位置已经确定了值的情况下;

代码例如以下:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;const int maxn = 55;
int mp[maxn][maxn];
int dp[maxn*2][maxn],a[maxn*2];int main()
{int t,n,m;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){for(int j=1;j<=m;j++)scanf("%d",&mp[i][j]);}for(int i=1;i<=n;i++)scanf("%d",&a[i]);memset(dp,-1,sizeof(dp));if(a[1]!=-1)dp[1][a[1]]=0;elsefor(int i=1;i<=m;i++)dp[1][i]=0;for(int i=2;i<=n;i++){for(int j=1;j<=m;j++){if(dp[i-1][j]!=-1){//假设前一项已经确定if(a[i]!=-1)dp[i][a[i]]=max(dp[i][a[i]],dp[i-1][j]+mp[j][a[i]]);else{for(int k=1;k<=m;k++)dp[i][k]=max(dp[i][k],dp[i-1][j]+mp[j][k]);}}}}/***************cout<<"   debug   "<<endl;for(int i=1;i<=n;i++){for(int j=0;j<=m;j++)cout<<dp[i][j]<<" ";cout<<endl;}cout<<"***********"<<endl;**************/int maxn = -1000;for(int i=1;i<=m;i++)maxn=max(dp[n][i],maxn);printf("%d\n",maxn);}return 0;
}

转载于:https://www.cnblogs.com/yxwkf/p/5213094.html

ACM/ICPC2014鞍山现场赛E hdu5074Hatsune Miku相关推荐

  1. 2011 ACM/ICPC 北京现场赛 B HouYi's secret

    周日起床后看见QQ群消息说 bupt上有半同步北京现场赛试题,就进入看了下题,一共读了两个题 A和B(因为这两个题目当时就都提交的很多) A题不会做,有限制的生成树的这类知识好像还没有接触过... B ...

  2. hdu 5078 2014鞍山现场赛 水题

    http://acm.hdu.edu.cn/showproblem.php?pid=5078 现场最水的一道题 连排序都不用,因为说了ti<ti+1 //#pragma comment(link ...

  3. hdu 50722014鞍山现场赛C题(容斥原理+同色三角形)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5072: 题意:找出一个3元集合使集合中的两两互质,或两两不互质.这样的集合的个数. 分析:将每个数都幻 ...

  4. HDU 5073 Galaxy (2014鞍山现场赛D题)

    题目链接:HDU 5073 Galaxy 题意:在一维的坐标系里,给出N个点坐标,转动K个点,使转动后这个星系的的惯性最小(根据题意惯性最小也就是 求所有星星到星系中心的距离最小,这个可以理解成方差最 ...

  5. 2014 ACM/ICPC 鞍山赛区网络赛(清华命题)

    为迎接10月17号清华命题的鞍山现场赛 杭电上的题目 Biconnected(hdu4997)     状态压缩DP Rotate(hdu4998)    相对任一点的旋转 Overt(hdu4999 ...

  6. 2014 ACM亚洲区域赛 - 北京现场赛

    2014 ACM亚洲区域赛 - 北京现场赛A - A Curious Matt一个排序,找最大值,overB - Black And White数据范围很小,单纯的暴力会TLE,看题解,染色问题有一个 ...

  7. 2018年 ACM/ICPC亚洲区域赛 青岛赛区现场赛 比赛总结

    首先祝贺自己收获了ACM生涯中的第二枚铜牌. 首先吐槽一下中石油: 周六早上来到中国石油大学,连个志愿者小姐姐都没看到.(但是看到了女装大佬).报完到之后发现教练少了一张午餐券(要不要这么粗心).为了 ...

  8. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  9. ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=5381 Information Theory is one of t ...

最新文章

  1. Highcharts Pie 饼图提示标签IE下重叠解决方法,及json数据绑定方法
  2. 每日一皮:临近截止日期, 产品经理就这样看着我...
  3. 二十万字C/C++、嵌入式软开面试题全集宝典五
  4. mysql密码正确但无法连接【彻底解决方案】
  5. 上传图片文件(支持远程存储)
  6. Spark-Streaming基础
  7. 关于ObjectProxy
  8. java语言实现二维数组构造二叉树_剑指offer打卡5:二叉树的子结构
  9. 聚类-----KMeans
  10. 怎么注册Google Earth Engine(GEE)
  11. VBA解压压缩文件。
  12. 福晟集团积极探索让“住有所居”成为新时代转型之路
  13. docker安装和基本命令
  14. 不是水文 ,没有人这样教过 Spring Security 和 OAuth 2.0
  15. python爬虫—爬取拉钩网
  16. 工业物联网创新方案亮相2018云栖大会
  17. 最新vx红包封面小程序源码 附教程
  18. [生而为人-思考] Knowledge Cooking -5th 分享会记录
  19. 【机器学习】李宏毅-食物图像分类器
  20. 由DBeaver与PL/SQL引发的数据库吐槽

热门文章

  1. 微软推出新逆天开源语言Bosque,告别 for 循环,提高开发效率!
  2. 用996打败员工,用“奋斗”替代生活
  3. RHEL在VM虚拟机下仅主机模式不能联网的解决方法
  4. ubuntu java sdk_ubuntu 10.10安装java sdk6过程
  5. 小学信息技术计算机网络教学设计,《小学信息技术》教学设计
  6. Java中 equals和==的区别?
  7. python的turtle怎么设置rgb颜色_Python : turtle色彩控制实例详解
  8. 009_logback本地Appender
  9. 021_jdbc-mysql入门
  10. java.lang包怎么用_java.lang.io包的使用