文章目录

  • 题目描述
  • 解析
  • 代码
  • thanks for reading!

题目描述



一代炉石的眼泪啊

解析

用dp[i][j]表示i与j之间的全部消掉(不含两端)的最小花费
然后枚举中间最后杀死的狼就行了
本题没有一次AC,因为一开始dp定义成了包含两端,然后因为还受再外面的影响,写的很乱
一次不成后经过思考,啊哈! 正解思路就诞生了
所以寻找适用与题目的dp定义非常重要
正如之前的积木消消乐一样

代码

#include<bits/stdc++.h>
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
const int N=600;
const int M=2e6+100;
int m,n;
ll dp[N][N];//dp[i][j]:把i与j之间的全部消掉(不含两端)
int a[N],b[N],h[N],x;
int seil(int x,int y){return x%y==0?x/y:x/y+1;
}
ll find(int st,int ed){if(dp[st][ed]) return dp[st][ed];if(st==ed-1) return 0;ll ans=2e17;for(int i=st+1;i<ed;i++){ans=min(ans,find(st,i)+find(i,ed)+seil(h[i],x)*(a[i]+b[st]+b[ed]));//枚举最后消掉的狼 }return dp[st][ed]=ans;
}
int main(){scanf("%d%d",&n,&x);for(int i=1;i<=n;i++) scanf("%d%d%d",&a[i],&b[i],&h[i]);printf("%lld",find(0,n+1));return 0;
}

thanks for reading!

不止代码:恐狼后卫(ybtoj-区间dp)相关推荐

  1. 【AtCoder - 4244 】AtCoder Express 2 (区间dp 或 暴力枚举,思维)

    题干: In Takahashi Kingdom, there is a east-west railroad and N cities along it, numbered 1, 2, 3, ... ...

  2. 恐狼后卫 (区间dp)

    首先是一个显然的结论:肯定是一口气把一头狼杀死,因为如果东砍一刀,西砍一刀,这样显然不会比直接砍死优 然后就是非常简单的 \(dp\) 了 \(dp[i][j]\) 表示杀死了 \(i\) 到 \(j ...

  3. 不止代码:ybtoj-消除木块(区间DP)

    题目描述 n个木块排成一列,每个木块都有一个颜色. 每次,你都可以点击一个木块,这样被点击的木块以及和它相邻并且同色的木块就会消除. 如果一次性消除了k个木块,那么就会得到k*k分. 给定你一个游戏初 ...

  4. 不止代码:乘法游戏 题解(区间dp)

    题目描述 乘法游戏是在一行牌上进行的.每一张牌包括了一个正整数.在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不允许拿第1张和最后1张牌.最后一次移动后,这里只剩下两张牌. ...

  5. 9018P1938恐狼后卫

    2017.01.20省冬的题-- 题目描述 著名卡牌游戏<石炉传说>中有一张随从牌:恐狼后卫.恐狼后卫的能力是使得相邻随从的攻击力提高. 现在有n张恐狼后卫顺序排成一排,第i只恐狼后卫的攻 ...

  6. 【区间dp】uva10003+ uva 1626 括号匹配问题 【有空自己记忆化写一下!!!】

    讲道理,其实我还不是太懂,这个题看到了两种写法 之前大概想的差不多,要这样实现呀: 常规写法,大概n--3 递归写法,稍微好理解一点 好了,接下来自从看了liuchuo的博客我要变身玛丽苏橙色了 题目 ...

  7. POJ 2955 Brackets (区间DP)

    题目链接:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Submiss ...

  8. HDU 5115 Dire Wolf ——(区间DP)

    比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: 1 #i ...

  9. 编程之美2015资格赛 题目2 : 回文字符序列 [ 区间dp ]

    传送门 题目2 : 回文字符序列 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串ab ...

  10. 动态规划——区间dp

    在利用动态规划解决的一些实际问题当中,一类是基于区间上进行的,总的来说,这种区间dp是属于线性dp的一种.但是我们为了更好的分类,这里仍将其单独拿出进行分析讨论. 让我们结合一个题目开始对区间dp的探 ...

最新文章

  1. Java基础 抽象类和接口的区别、equals 与 == 的区别
  2. MYSQL-Can't connect to MySQL server on 'localhost' (10061)
  3. Python_items()方法【详解】——Python系列学习笔记
  4. 响应式设计(Response Web Design)浅谈
  5. [html] 实现两列等宽布局的方式有哪些?
  6. python报错defined_python问卷星报错NameError: name 'filename' is not defined
  7. python句柄无效_subprocess.Popen 运行windows命令出现“句柄无效”报错的解决方法
  8. 从控制台读取password - C#
  9. iOS 音乐播放器之锁屏效果+歌词解析
  10. 深入理解Java虚拟机运行时数据区
  11. python difflib 编辑距离_LeetCode--072--编辑距离(python)
  12. Linux 内存管理:DAX(Direct Access)机制的作用及实现原理
  13. 浅谈被动式IAST产品与技术实现
  14. android 根据颜色值修改背景图的背景色 最简单方法
  15. 取整函数access_ACCESS常用函数总结
  16. C# 使用MemeryStream进行序列化
  17. Doug Lea是谁?谁知道
  18. 计算机中汉字的顺序用什么牌,中国汉字的写做顺序,你知道吗?
  19. 使用tcgames电脑玩手机游戏助手时卡顿延迟问题解决方案
  20. 单片机实验汇编2--P1口输入、输出实验

热门文章

  1. linux命令clock,简单了解Linux系统中clock命令的使用方法
  2. 电脑温度检测软件哪个好_实时检测Mac电脑的温度
  3. labelme 语义分割数据集_labelme安装以及使用教程——自制语义分割数据集(保姆级示范)...
  4. js vue中得延时器_Vue.js实现时分秒倒计时
  5. mysql数据库密码错误_MySQL数据库经典错误六 数据库密码忘记的问题
  6. leetcode-345-翻转字符串中的元音字母
  7. 151. 翻转字符串里的单词(思路+详解)
  8. [mybatis]sqlSessionFactory.openSession()
  9. [蓝桥杯2016决赛]平方末尾-数论,枚举
  10. AcWing 499. 聪明的质监员