不止代码:恐狼后卫(ybtoj-区间dp)
文章目录
- 题目描述
- 解析
- 代码
- 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)相关推荐
- 【AtCoder - 4244 】AtCoder Express 2 (区间dp 或 暴力枚举,思维)
题干: In Takahashi Kingdom, there is a east-west railroad and N cities along it, numbered 1, 2, 3, ... ...
- 恐狼后卫 (区间dp)
首先是一个显然的结论:肯定是一口气把一头狼杀死,因为如果东砍一刀,西砍一刀,这样显然不会比直接砍死优 然后就是非常简单的 \(dp\) 了 \(dp[i][j]\) 表示杀死了 \(i\) 到 \(j ...
- 不止代码:ybtoj-消除木块(区间DP)
题目描述 n个木块排成一列,每个木块都有一个颜色. 每次,你都可以点击一个木块,这样被点击的木块以及和它相邻并且同色的木块就会消除. 如果一次性消除了k个木块,那么就会得到k*k分. 给定你一个游戏初 ...
- 不止代码:乘法游戏 题解(区间dp)
题目描述 乘法游戏是在一行牌上进行的.每一张牌包括了一个正整数.在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不允许拿第1张和最后1张牌.最后一次移动后,这里只剩下两张牌. ...
- 9018P1938恐狼后卫
2017.01.20省冬的题-- 题目描述 著名卡牌游戏<石炉传说>中有一张随从牌:恐狼后卫.恐狼后卫的能力是使得相邻随从的攻击力提高. 现在有n张恐狼后卫顺序排成一排,第i只恐狼后卫的攻 ...
- 【区间dp】uva10003+ uva 1626 括号匹配问题 【有空自己记忆化写一下!!!】
讲道理,其实我还不是太懂,这个题看到了两种写法 之前大概想的差不多,要这样实现呀: 常规写法,大概n--3 递归写法,稍微好理解一点 好了,接下来自从看了liuchuo的博客我要变身玛丽苏橙色了 题目 ...
- POJ 2955 Brackets (区间DP)
题目链接:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submiss ...
- HDU 5115 Dire Wolf ——(区间DP)
比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: 1 #i ...
- 编程之美2015资格赛 题目2 : 回文字符序列 [ 区间dp ]
传送门 题目2 : 回文字符序列 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串ab ...
- 动态规划——区间dp
在利用动态规划解决的一些实际问题当中,一类是基于区间上进行的,总的来说,这种区间dp是属于线性dp的一种.但是我们为了更好的分类,这里仍将其单独拿出进行分析讨论. 让我们结合一个题目开始对区间dp的探 ...
最新文章
- Java基础 抽象类和接口的区别、equals 与 == 的区别
- MYSQL-Can't connect to MySQL server on 'localhost' (10061)
- Python_items()方法【详解】——Python系列学习笔记
- 响应式设计(Response Web Design)浅谈
- [html] 实现两列等宽布局的方式有哪些?
- python报错defined_python问卷星报错NameError: name 'filename' is not defined
- python句柄无效_subprocess.Popen 运行windows命令出现“句柄无效”报错的解决方法
- 从控制台读取password - C#
- iOS 音乐播放器之锁屏效果+歌词解析
- 深入理解Java虚拟机运行时数据区
- python difflib 编辑距离_LeetCode--072--编辑距离(python)
- Linux 内存管理:DAX(Direct Access)机制的作用及实现原理
- 浅谈被动式IAST产品与技术实现
- android 根据颜色值修改背景图的背景色 最简单方法
- 取整函数access_ACCESS常用函数总结
- C# 使用MemeryStream进行序列化
- Doug Lea是谁?谁知道
- 计算机中汉字的顺序用什么牌,中国汉字的写做顺序,你知道吗?
- 使用tcgames电脑玩手机游戏助手时卡顿延迟问题解决方案
- 单片机实验汇编2--P1口输入、输出实验
热门文章
- linux命令clock,简单了解Linux系统中clock命令的使用方法
- 电脑温度检测软件哪个好_实时检测Mac电脑的温度
- labelme 语义分割数据集_labelme安装以及使用教程——自制语义分割数据集(保姆级示范)...
- js vue中得延时器_Vue.js实现时分秒倒计时
- mysql数据库密码错误_MySQL数据库经典错误六 数据库密码忘记的问题
- leetcode-345-翻转字符串中的元音字母
- 151. 翻转字符串里的单词(思路+详解)
- [mybatis]sqlSessionFactory.openSession()
- [蓝桥杯2016决赛]平方末尾-数论,枚举
- AcWing 499. 聪明的质监员