ACM/ICPC2014鞍山现场赛E hdu5074Hatsune Miku
题目链接: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相关推荐
- 2011 ACM/ICPC 北京现场赛 B HouYi's secret
周日起床后看见QQ群消息说 bupt上有半同步北京现场赛试题,就进入看了下题,一共读了两个题 A和B(因为这两个题目当时就都提交的很多) A题不会做,有限制的生成树的这类知识好像还没有接触过... B ...
- hdu 5078 2014鞍山现场赛 水题
http://acm.hdu.edu.cn/showproblem.php?pid=5078 现场最水的一道题 连排序都不用,因为说了ti<ti+1 //#pragma comment(link ...
- hdu 50722014鞍山现场赛C题(容斥原理+同色三角形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5072: 题意:找出一个3元集合使集合中的两两互质,或两两不互质.这样的集合的个数. 分析:将每个数都幻 ...
- HDU 5073 Galaxy (2014鞍山现场赛D题)
题目链接:HDU 5073 Galaxy 题意:在一维的坐标系里,给出N个点坐标,转动K个点,使转动后这个星系的的惯性最小(根据题意惯性最小也就是 求所有星星到星系中心的距离最小,这个可以理解成方差最 ...
- 2014 ACM/ICPC 鞍山赛区网络赛(清华命题)
为迎接10月17号清华命题的鞍山现场赛 杭电上的题目 Biconnected(hdu4997) 状态压缩DP Rotate(hdu4998) 相对任一点的旋转 Overt(hdu4999 ...
- 2014 ACM亚洲区域赛 - 北京现场赛
2014 ACM亚洲区域赛 - 北京现场赛A - A Curious Matt一个排序,找最大值,overB - Black And White数据范围很小,单纯的暴力会TLE,看题解,染色问题有一个 ...
- 2018年 ACM/ICPC亚洲区域赛 青岛赛区现场赛 比赛总结
首先祝贺自己收获了ACM生涯中的第二枚铜牌. 首先吐槽一下中石油: 周六早上来到中国石油大学,连个志愿者小姐姐都没看到.(但是看到了女装大佬).报完到之后发现教练少了一张午餐券(要不要这么粗心).为了 ...
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=5381 Information Theory is one of t ...
最新文章
- Highcharts Pie 饼图提示标签IE下重叠解决方法,及json数据绑定方法
- 每日一皮:临近截止日期, 产品经理就这样看着我...
- 二十万字C/C++、嵌入式软开面试题全集宝典五
- mysql密码正确但无法连接【彻底解决方案】
- 上传图片文件(支持远程存储)
- Spark-Streaming基础
- 关于ObjectProxy
- java语言实现二维数组构造二叉树_剑指offer打卡5:二叉树的子结构
- 聚类-----KMeans
- 怎么注册Google Earth Engine(GEE)
- VBA解压压缩文件。
- 福晟集团积极探索让“住有所居”成为新时代转型之路
- docker安装和基本命令
- 不是水文 ,没有人这样教过 Spring Security 和 OAuth 2.0
- python爬虫—爬取拉钩网
- 工业物联网创新方案亮相2018云栖大会
- 最新vx红包封面小程序源码 附教程
- [生而为人-思考] Knowledge Cooking -5th 分享会记录
- 【机器学习】李宏毅-食物图像分类器
- 由DBeaver与PL/SQL引发的数据库吐槽
热门文章
- 微软推出新逆天开源语言Bosque,告别 for 循环,提高开发效率!
- 用996打败员工,用“奋斗”替代生活
- RHEL在VM虚拟机下仅主机模式不能联网的解决方法
- ubuntu java sdk_ubuntu 10.10安装java sdk6过程
- 小学信息技术计算机网络教学设计,《小学信息技术》教学设计
- Java中 equals和==的区别?
- python的turtle怎么设置rgb颜色_Python : turtle色彩控制实例详解
- 009_logback本地Appender
- 021_jdbc-mysql入门
- java.lang包怎么用_java.lang.io包的使用