hdu5115

HDU5115(区间dp)详解 题目大意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力。你杀死一只狼。你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时,自己受到的伤害最小。(提醒,狼杀死后就消失,身边原本相隔的两只狼会变成相邻,而且不需要考虑狼围城环这种情况)输入要求:总共T组数据,每组N只狼,按顺序输入全部狼的主动攻击力和然后再按顺序输入全部狼的 阅读详情
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5115


题意:有一些狼,从左到右排列,每只狼有一个伤害A,还有一个伤害B。杀死一只狼的时候,会受到这只狼的伤害A和这只狼两边的狼的伤害B的和。若两只狼之间的狼都被杀了,这两只狼也算相邻。求杀掉一排狼的最小代价。


思路:区间DP,设f[i][j]为消灭i到j只狼的代价,枚举k作为最后一只被杀死的狼,此时会受到a[k]和b[i-1] b[j+1]的伤害 取最小的即可 
转移方程:dp[i][j]= 

Min(dp[i][j],dp[i][k-1]+dp[k+1][j]+a[k]+b[i-1]+b[j+1])


#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int inf=0x3f3f3f3f;
int a[205],b[205];
long long dp[205][205];
int main()
{
    int T,n,ca=1;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(int i=1;i<=n;i++)
            scanf("%d",&b[i]);
        a[0]=b[0]=a[n+1]=b[n+1]=0;
            /*
        for(int i=0;i<=n;i++)
        {
            for(int j=i;j<=n;j++)
                dp[i][j]=inf;
        }
        */
        memset(dp,0x7F,sizeof(dp));
        for(int l=0;l<n;l++)
        {
            for(int i=1;i<=n-l;i++)
            {
                int j=i+l;
                for(int k=i;k<=j;k++)
                {
                	long long L,R;
                	if(k-1<i) L=0;else L=dp[i][k-1];
                	if(k+1>j) R=0;else R=dp[k+1][j];
                	dp[i][j]=min(dp[i][j],L+R+a[k]+b[i-1]+b[j+1]);
                   // dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+a[k]+b[i-1]+b[j+1]);
                }
            }
        }
        printf("Case #%d: %lld\n",ca++,dp[1][n]);
    }
    return 0;
}




HDU-5115-Dire Wolf HDU-5115-Dire Wolf 传送门 本题是经典区间dp。 题目大意:背景无比长。。一个射手要射一群狼。狼有自己本身的攻击值和邻居的狼给它的额外的攻击值。射手把一头狼射杀。自己也会收到与狼攻击值等同的伤害。(本身攻击值+额外获得的攻击值)。当一头狼被射杀。那么它给邻居狼的额外攻击值也会消失。问射手最小获得的伤害是多少。 其实开始我以为是贪心啊哈哈。 因为是经典区间dp嘛。就不多说了。 dp... 阅读详情

相关推荐

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5060

hdu5115(区间dp)

n头狼排成一列,每头狼有两个属性,基础攻击力和附加攻击力, 第i只狼的基础攻击力是ai,附加攻击力是b(i-1) + b(i+1) 消灭一只狼,受到的伤害为基础攻击力+附加攻击力。 问消灭所有的狼受到的最小伤害。 基础攻击力的伤害肯定是要承受的。关键是怎么将附加攻击力的伤害降低到最小 像这种不能从前往后状态转移的dp,应该是用区间dp。 设dp[i][j] 为消灭区间i->j所有...

weixin_30263277的博客 196

自监督学习与上下文赌博机融合:视觉决策中的协同优化与实战指南

在机器学习领域,自监督学习(Self-Supervised Learning)通过设计前置任务从无标注数据中学习通用表征,已成为解决标注数据稀缺问题的关键技术。其核心原理是利用数据自身的结构生成监督信号,训练编码器提取鲁棒特征。上下文赌博机(Contextual Bandits)作为强化学习的简化分支,专注于在给定上下文信息下做出单步最优决策,平衡探索与利用,广泛应用于推荐系统、广告投放等场景。将两者结合,构建端到端的协同训练框架,能让视觉表征的优化直接服务于最终的决策目标,同时利用自监督任务作为正则化项提

weixin_33721344的博客 521

HDU - 5115 (经典区间dp)

题意:n头狼,杀死第i头狼会受到b[i-1]+b[i+1]+a[i]的伤害,问杀死所有狼受到的最小伤害值。 因为无论怎么选,a值都只需要加一遍,所以先把a的和算出来,最后加到答案上就行了。 我们可以在两边加一头a值和b值都为0的狼,dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+b[i]+b[j]); 答案为dp[0][n+1]. #include #in

阿狸的博客 436

Fluent UDF实战:除了速度入口,你的DEFINE_PROFILE宏还能搞定这些边界条件(温度、组分、壁面接触角全解析)

本文深入解析Fluent UDF中DEFINE_PROFILE宏在复杂边界条件中的高阶应用,涵盖温度场、组分浓度和壁面接触角等关键场景。通过实战代码示例,展示如何实现空间梯度温度场、动态组分控制和接触角动态调整,助力CFD工程师突破标准界面限制,提升仿真精度和效率。

weixin_28688385的博客 451

使用Python,OpenCV查找图像中的最亮点

这篇博客展示了,为什么在图像中找到最亮的点之前应用高斯模糊是至关重要的。 通过应用高斯模糊,可以将每个给定半径内的像素平均在一起。取平均值可以去除高频噪声,否则会影响cv2.minMaxLoc函数的结果。 一定要研究高斯模糊半径的恰当值。如果取值太小,将会减轻平均值的影响,而忽略了更大、更亮的区域。但是如果半径太大,将无法探测到小的明亮区域。

qq_40985985的博客 3809

hdu 5115 思维 dp

题意:你要杀死n只狼,对于每个狼有对应的a[i]表示其本身的战斗力,b[i]表示他可以给左右(如果有的话)的两匹狼提供b[i]的战斗力提升buff,问杀掉所有狼的最小费用。 无论杀的方法,最后肯定要花费,所以只对b进行考虑,最后加上a的和。   由矩阵链乘引起的思路:用dp[i][j]表示杀光从i到j所有狼的费用。 从i到j枚举k,k表示最后一只杀死的狼,这样就把i-j分为了三个部分:[i...

neuq_zsmj的博客 249

【人工智能】国产开源大模型聊天 AquilaChat 快速开始上手实战&效果评测

Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,在Aquila的训练过程中实现了比Magtron+DeepSpeed zero-2将近8倍的训练效率。Aquila语言大模型是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。

AI天才研究院 2万+

Dire Wolf (区间dp经典题)

Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not all, Dire Wolves appear to originate from Draenor. Dire wolves look like normal wolves, but these ...

自渡的博客 1848

OceanBase容量统计:租户、数据库、表大小

🍎 数据库版本:OceanBase V4。

Sebastien23的博客 1406

【硬件的单元测试 UT 3】PCIe 3.0及信号完整性测试方法

PCIe标准自从推出以来,1代和2代标准已经在PC和Server上逐渐普及,用于满足高速显卡、高速存储设备对于高速数据传输的要求。出于支持更高总线数据吞吐率的目的,PCI-SIG组织在2010年制定了PCIe 3.0,即PCIe 3代的规范,数据速率达到8Gbps。

qq_43416206的博客 1415

HDU - 5115

题目链接:HDU - 5115 不难看出可以区间dp,不过有一些小技巧。 假设当前第一个攻击的区间为【l,r】,这个区间最后死的狼是k,那么就很好转移了。如果枚举第一个死的狼,不好转移。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> //#define int lo...

青烟绕指柔的博客 537

数据权限设计

随着IT新技术不断完善成熟,企业数字化建设得到全面的发展,数据将成为一个创造财富的重要来源,并且越来越多地被视为一项值得重视的企业资产。未来,很多企业之间的竞争,其实也是资源和数据竞争。那么针对数据资产,如何保障它的安全性呢?数据的权限管理无疑是必不可少的。数据权限从数据源来控制不同的用户能够查看、使用和授权不同的数据表数据(其实就是数据表行列的管控),就如同筑起了一道道护城墙,为数据安全提供了保障。

qq_40664711的博客 1万+

hdu 5115 Dire Wolf

HDU 5115  2014 ACM/ICPC Asia Regional - Beijing D题 题意:有n头狼,每头狼都有一个基础攻击,而且每一头狼都会给邻近的狼增加攻击,杀掉一头狼受到的伤害为它的攻击力,求杀掉所有狼受到的最小伤害是多少? 分析:很明显属于一个多阶段决策问题,考虑DP,问题规模为杀掉1到n这n头狼,区间DP,令dp[i][j]为杀掉第i头狼到第j头狼受到的

我的ACM,我的梦!!! 898

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HDU 5115 Dire Wolf(区间dp)

目录问题概述4维状态设计分析代码2维状态设计分析代码 问题 HDU 5115 Dire Wolf - https://acm.hdu.edu.cn/showproblem.php?pid=5115 概述 方法:区间dp 对于一个区间 [l][r][l][r][l][r],设最后打败的编号是 k(l≤k≤r)k (l\leq k \leq r)k(l≤k≤r),则问题可以分解为两个子问题,即 [l][k−][l][k-][l][k−]和[k+1][r][k+1][r][k+1][r],因此遍历 kkk 后即

jpphy0的博客 457

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU5115 Dire Wolf 区间dp

HDU5115 Dire Wolf杀掉某只狼之后, 他左右的狼会相邻。杀掉某个区间的狼之后,攻击力是区间两边的狼的加成。#include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> using namespace std;#define MAXN (200+20) int a[MAXN], b[MAXN]; i

QER 的博客 467

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

hdu5115 Dire Wolf--区间DP

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

半壶老酒 717

解题报告 之 HDU5115 Dire Wolf

解题报告 之 hdu5115 Dire Wolf Description Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not all, Dire Wolves appear to originate from Draenor.

JUST CODE 838

HDU 5115 Dire Wolf (区间DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:有一些狼,从左到右排列,每只狼有一个伤害A,还有一个伤害B。杀死一只狼的时候,会受到这只狼的伤害A和这只狼两边的狼的伤害B的和。若两只狼之间的狼都被杀了,这两只狼也算相邻。求杀掉一排狼的最小代价。解题思路:设dp[i][j]为消灭编号从i到j只狼的代价,那么结果就是dp[1...

weixin_30824599的博客 74

HDU 5115 Dire Wolf | 区间DP

题目: http://acm.hdu.edu.cn/showproblem.php?pid=5115 题解: 和上篇博客一样 #include<cstdio> #include<algorithm> #include<cstring> #define N 205 using namespace std; int n,a[N],b[N],...

weixin_30925411的博客 95

HDU_5115 Dire Wolf

#include #include #include #include #include #include using namespace std; typedef long long ll; const int maxn=220; #define INF 0x3f3f3f3f int a[maxn],b[maxn],dp[maxn][maxn]; int main(

老子(道家) 356

刷基础题-hdu5115

http://acm.hdu.edu.cn/showproblem.php?pid=5115 2019.5.30 简单的区间dp,攻击一匹狼的花费是这匹狼的攻击力和相邻狼的额外攻击力 #include <stdio.h> #include <algorithm> #include <string.h> #define mem(x,y) memset(x,y,si...

x3219935858的博客 190

Hdu5115 Dire Wolf

http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:n头狼,分别有一个攻击力,而且分别有一个加持力,可以给左右两边的狼加相应的攻击力(边界的狼就只能给相邻的一头狼加) ,一个人要杀狼,杀一头狼时受到该狼的攻击力和来自周围的加持力。被杀死的狼的加持力消失,但其他狼又会更新加持力(因为相邻的位置变化了)。问该人能够把全部狼杀光,且最小受到多少伤害?...

weixin_30906701的博客 61

HDU 5115 (2014ACM/ICPC亚洲区北京站) D题(Dire Wolf)

题目传送门 设dp[i][j]为杀掉区间i到j之间的狼需要付出的最小代价,那么dp[i][j]=min{dp[i][k-1]+dp[k+1][j]+a[k]+b[i-1]+b[j+1]} Java代码 import java.io.*; import java.util.*; class MyInputStream extends InputStream { public B...

weixin_34192993的博客 172

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

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

qq_45891413的博客 256

HDU 5115 Dire Wolf 区间DP+记忆化搜索

Dire Wolf Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Total Submission(s): 749 Accepted Submission(s): 438 Problem Description Dire wolves, also known

wind-wing 422
上一篇: Subsequence hdu3530
下一篇: hdu 5120
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值