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

解题报告:给出一个长度为n的序列,例如a1,a2,a3,a4......an,然后这个序列的美丽值就是socre[a1][a2] + socre[a2][a3] + ..... socre[an-1][an],但是这个序列里面并不是所有的数都是确定的,输入包含一些大于0的数和一些-1,-1表示这个数可以任意,但是要在m的范围内,给出socre[i][j],求这个序列最大的美丽值.

一个二维dp,dp[i][j] 的意义就是当第i个数是j的时候的前i个数的美丽值是dp[i][j],然后递推公式如下:

dp[i][j] = max(dp[i][j],dp[i-1][k] + socre[k][j]);

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std; int T,n,m;
int value[][],note[],dp[][];
int main()
{
// freopen("in","r",stdin);
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(int i = ;i <= m;++i)
for(int j =;j <= m;++j)
scanf("%d",&value[i][j]);
for(int i = ;i <= n;++i)
scanf("%d",&note[i]);
memset(dp,,sizeof(dp));
for(int i = ;i <= n;++i)
{
if(note[i] == -)
{
for(int j = ;j <= m;++j)
{
if(note[i-] == -)
for(int k = ;k <= m;++k)
dp[i][j] = max(dp[i][j],dp[i-][k] + value[k][j]);
else dp[i][j] = max(dp[i][j],dp[i-][note[i-]] + value[note[i-]][j]);
}
}
else
{
if(note[i-] == -)
for(int k = ;k <= m;++k)
dp[i][note[i]] = max(dp[i][note[i]],dp[i-][k] + value[k][note[i]]);
else dp[i][note[i]] = max(dp[i][note[i]],dp[i-][note[i-]] + value[note[i-]][note[i]]);
}
}
int ans = ;
for(int i = ;i <= m;++i)
ans = max(ans,dp[n][i]);
printf("%d\n",ans);
}
return ;
}

HDU 5074 Hatsune Miku(2014鞍山赛区现场赛E题)的更多相关文章

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

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5073 解题报告:在一条直线上有n颗星星,一开始这n颗星星绕着重心转,现在我们可以把其中的任意k颗星星移 ...

  2. HDU 5071 Chat(2014鞍山赛区现场赛B题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5071 解题报告:一个管理聊天窗口的程序,一共有八种操作,然后要注意的就是Top操作只是把编号为u的窗口 ...

  3. HDU 5074 Hatsune Miku 2014 Asia AnShan Regional Contest dp(水

    简单dp #include <stdio.h> #include <cstring> #include <iostream> #include <map> ...

  4. HDU 5128 The E-pang Palace(2014广州赛区现场赛B题 计算几何)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5128 解题报告:在一个平面上给出n个点的坐标,用这n个点作为矩形的四个顶点,作两个矩形,要求两个矩形不 ...

  5. HDU 5120 A Curious Matt(2014北京赛区现场赛A题 简单模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5112 解题报告:扫一遍 #include<cstdio> #include<cstr ...

  6. HDU 5120 Intersection(2014北京赛区现场赛I题 计算几何)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5120 解题报告:给你两个完全相同的圆环,要你求这两个圆环相交的部分面积是多少? 题意看了好久没懂.圆环 ...

  7. dp --- 2014 Asia AnShan Regional Contest --- HDU 5074 Hatsune Miku

    Hatsune Miku Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5074 Mean: 有m种音符(note),现在要从 ...

  8. 2014 ACM/ICPC 鞍山赛区现场赛 D&amp;I 解题报告

    鞍山现场赛结束了呢-- 我们出的是D+E+I三道题-- 吾辈AC掉的是D和I两道,趁着还记得.先在这里写一写我写的两道水题D&I的解题报告吧^_^. D题的意思呢是说星云内有一堆排成一条直线的 ...

  9. hdu 5074 Hatsune Miku DP题目

    题目传送门http://acm.hdu.edu.cn/showproblem.php?pid=5074 $dp[i][j] =$ 表示数列前$i$个数以$j$结尾的最大分数 $dp[i][j] = - ...

随机推荐

  1. struts2文件目录结构

    apps 文件夹包含了多个 example 示例应用的压缩包. docs 文件夹包含了 struts 官方的帮助文档. lib 文件夹包含了 struts 提供的类库 jar 包. src 文件夹包含 ...

  2. Spring-data-jpa 的@modifying注解

    在项目的进行中需要通过 @Modifying 注解完成修改操作(注意:不支持新增) 1.之前有一个业务需要先查询一个结果集,然后将满足结果集中某个条件的另外一张表中的字段做一个属性值的更改,这个更改可 ...

  3. Android之Proguard语法

    -include {filename} 从给定的文件中读取配置参数 -basedirectory {directoryname} 指定基础目录为以后相对的档案名称 -injars {class_pat ...

  4. redhat安装VMware tools的方法

    如果我们仔细看的话, 就会发现在VMware软件界面的左下角处显示着 "you don't have VMware Tools installed",即我们还没安装VMware T ...

  5. base64 json

    javascript将base64编码的图片数据转换为file并提交 直接提交base64编码图片数据,过大的话后台会出现转发错误问题. 一个不错的解决方式就是将base64编码的图片数据转换为Blo ...

  6. JavaWeb学习笔记——jsp内置对象

  7. 第3章 基本概念(第一部分:Js语法)

    本章就JavaScript常用功能而言阐述ECMAScript“伪语言”所描述的概念. 一. 语法 1.大小写规则 js语言本身对大小写不敏感,但是一切变量.函数.操作符都对大小写敏感. 2.注释格式 ...

  8. 免费SSL证书Let’s Encrypt

    由于我们公司测试环境使用的这个.自己没有亲手搭建使用,但是知道有这个东西.以后使用的话自己直接搞起. 连接文档:http://www.5icool.org/a/201512/a15271.html   ...

  9. OC-成员变量的作用域

    #import <Foundation/Foundation.h> @interface Person : NSObject { int _no; @public // 在任何地方都能直接 ...

  10. Linq 中的 left join

    Linq 中的 left join 表A User: 表B UserType: Linq: from t in UserType join u in User on t.typeId equal u. ...