Dire Wolf HDU - 5115 区间DP,寒假集训

该博客介绍了如何使用区间动态规划方法解决HDU 5115题,即计算在特定条件下消灭所有狼的最小伤害值。题目中,狼的攻击力受到相邻狼的加成影响,当狼被杀死后,其加成消失。博主提供了样例输入和输出,并提示了动态规划状态转移方程的关键点,即需要初始化后半部分为最大值,并考虑当前点的攻击力及相邻狼的加成。
摘要由CSDN通过智能技术生成

有n头狼排成一排,每只狼两个属性,攻击力和加成值,狼的实际攻击力等于自身攻击力加相邻狼的加成值,被杀死之后的狼对相邻的狼的攻击力的加成会被取消,同时,原先与 被杀死的狼相邻的两头狼会变成相邻的狼。问杀死所有狼受到的伤害值最小是。
Input
多组输入,第一行一个T
每组输入一个n(n <= 200)
输入n个数,代表每只狼的攻击力(0<=a[i] <=1e5)
输入n个数,代表每只狼的加成值(0<=b[i]<=5e4)
Output
每组样例输出一个Case,然后输出答案。
Sample Input
2
3
3 5 7
8 2 0
10
1 3 5 7 9 2 4 6 8 10
9 4 1 2 1 2 1 4 5 1
Sample Output
Case #1: 17
Case #2: 74

Hint
In the first sample, Matt defeats the dire wolves from left to right. He takes 5 + 5 + 7 = 17 points of damage which is the least damage he has to take.、

区间DP模板题,先记得将dp[i][j]的后半部,即j>i的部分初始化为最大值,因为是在用后半部分来更新前段
动态转移方程,dp[j][k]=min(dp[j][k],dp[j][x-1]+a[x]+dp[x+1][k]+b[j-1]+b[k+1]);,每个点要多加当前的攻击值和b数组左右两边的相邻加成

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <map>
#include <stack>
#include <set>
#include <queue>
#include <vector>
#include <iostream>
#include <algorithm>
#include <cstring>
#include 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值