Crested Ibis vs Monster——AT动态规划思想

2023-11-04

题目描述

Ibis is fighting with a monster.
The health of the monster is H.
Ibis can cast N kinds of spells. Casting the i-th spell decreases the monster’s health by Ai, at the cost of Bi Magic Points.
The same spell can be cast multiple times. There is no way other than spells to decrease the monster’s health.
Ibis wins when the health of the monster becomes 0 or below.
Find the minimum total Magic Points that have to be consumed before winning.

Constraints
·1≤H≤104
·1≤N≤103
·1≤Ai≤104
·1≤Bi≤104
·All values in input are integers.
输入
Input is given from Standard Input in the following format:

H N
A1 B1
:
AN BN

输出

Print the minimum total Magic Points that have to be consumed before winning.

样例输入

【样例19 3
8 3
4 2
2 1
【样例2100 6
1 1
2 3
3 9
4 27
5 81
6 243
【样例39999 10
540 7550
691 9680
700 9790
510 7150
415 5818
551 7712
587 8227
619 8671
588 8228
176 2461

样例输出

【样例14
【样例2100
【样例3139815

提示

样例1解释
First, let us cast the first spell to decrease the monster’s health by 8, at the cost of 3 Magic Points. The monster’s health is now 1.
Then, cast the third spell to decrease the monster’s health by 2, at the cost of 1 Magic Point. The monster’s health is now −1.
In this way, we can win at the total cost of 4 Magic Points.
样例2解释
It is optimal to cast the first spell 100 times.

#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize (2)
#pragma G++ optimize (2)
#include <bits/stdc++.h>
#include <algorithm>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define wuyt main
typedef long long ll;
#define HEAP(...) priority_queue<__VA_ARGS__ >
#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >
template<class T> inline T min(T &x,const T &y){return x>y?y:x;}
template<class T> inline T max(T &x,const T &y){return x<y?y:x;}
///#define getchar()(p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
///char buf[(1 << 21) + 1], *p1 = buf, *p2 = buf;
ll read(){ll c = getchar(),Nig = 1,x = 0;while(!isdigit(c) && c!='-')c = getchar();
if(c == '-')Nig = -1,c = getchar();
while(isdigit(c))x = ((x<<1) + (x<<3)) + (c^'0'),c = getchar();
return Nig*x;}
#define read read()
const ll inf = 1e15;
const int maxn = 2e5 + 7;
const int mod = 1e9 + 7;
#define start int wuyt()
int num[maxn];
ll ans;
int main() {
    int h=read,n=read;
    vector<int> dp(h+1, mod);
    dp[0]=0;
    for(int i=0;i<n;i++)
    {
        int a=read,b=read;
        for(int j=0;j<h;j++)
        {
            int temp=min(j+a,h);
            dp[temp] = min(dp[temp],dp[j]+b);
        }
    }
    printf("%d\n",dp[h]);
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Crested Ibis vs Monster——AT动态规划思想 的相关文章

  • Donation-树形dp-建图

    题目网址 链接 int head maxn int n m cnt tot ll a maxn b maxn c maxn id maxn int fa maxn int lson maxn rson maxn struct node in
  • Research Productivity Index-概率dp

    题目描述 Angela is a new PhD student and she is nervous about the upcoming paper submission deadline of this year s research
  • 力扣刷题-1371.每个元音包含偶数次的最长子字符串、前缀和、动态规划

    一 背景 和为k的子数组 给定一个整数数组和一个整数 k 你需要找到该数组中和为 k 的连续的子数组的个数 示例 1 输入 nums 1 1 1 k 2 输出 2 1 1 与 1 1 为两种不同的情况 来源 力扣 LeetCode 第560
  • 最长公共子序列 蓝桥杯 1189

    题目描述 给定一个长度为n数组A和一个长度为m数组B 请你求出它们的最长公共子序列长度为多少 输入描述 输入第一行包含两个整数n m 第二行包含n个整数ai 第三行包含m个整数bi 1 lt n m lt 10 3 1 lt ai bi l
  • LeetCode-410.分隔数组的最大值、动态规划、前缀和

    给定一个非负整数数组和一个整数 m 你需要将这个数组分成 m 个非空的连续子数组 设计一个算法使得这 m 个子数组各自和的最大值最小 示例 输入 nums 7 2 5 10 8 m 2 输出 18 力扣 LeetCode 第410题 前言
  • Crested Ibis vs Monster——AT动态规划思想

    题目描述 Ibis is fighting with a monster The health of the monster is H Ibis can cast N kinds of spells Casting the i th spe
  • leetcode买卖股票的最佳时机含手续费

    动态规划简单题 我们设置二维数组dp size 2 其中dp i 0 代表第i 天不持有股票的最大价值 其中dp i 1 代表第i天持有股票的最大价值 当天持有股票可以从前一天持有股票和前一天不持有股票现今买入转换得来 当天不持有股票可以从
  • 【力扣】96. 不同的二叉搜索树 <动态规划>

    力扣 96 不同的二叉搜索树 给你一个整数 n 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种 返回满足题意的二叉搜索树的种数 示例 1 输入 n 3 输出 5 示例 2 输入 n 1 输出 1 提示 1 l
  • APAC 2013 部分题解

    目录 A The Alphabet Sticker C Increasing Shortest Path D Cup of Cowards E Balloons Colors F NASSA s Robot G The Stones Gam
  • [Codeforces 1579G] Minimal Coverage

    You are given n lengths of segments that need to be placed on an infinite axis with coordinates The first segment is pla
  • LeetCode-312.戳气球、动态规划

    有 n 个气球 编号为0 到 n 1 每个气球上都标有一个数字 这些数字存在数组 nums 中 现在要求你戳破所有的气球 如果你戳破气球 i 就可以获得 nums left nums i nums right 个硬币 这里的 left 和
  • Leetcode 376.摆动序列

    题目 如果连续数字之间的差严格地在正数和负数之间交替 则数字序列称为 摆动序列 第一个差 如果存在的话 可能是正数或负数 仅有一个元素或者含两个不等元素的序列也视作摆动序列 例如 1 7 4 9 2 5 是一个 摆动序列 因为差值 6 3
  • Queen on Grid_dp

    思想很单纯 gt dp Code 代码解释 dp i j ans 1 i 1 j 竖着过来 dp i j mod dp i j ans 2 i j 1 横着过来 dp i j mod dp i j ans 3 i 1 j 1 斜着过来 dp
  • 左孩子右兄弟 蓝桥杯1451 python

    题目描述 对于一棵多叉树 我们可以通过 左孩子右兄弟 表示法 将其转化成一棵二叉树 如果我们认为每个结点的子结点是无序的 那么得到的二叉树可能不唯一 换句话说 每个结点可以选任意子结点作为左孩子 并按任意顺序连接右兄弟 给定一棵包含 N 个
  • 拿金币 蓝桥杯

    问题描述 有一个N x N的方格 每一个格子都有一些金币 只要站在格子里就能拿到里面的金币 你站在最左上角的格子里 每次可以从一个格子走到它右边或下边的格子里 请问如何走才能拿到最多的金币 输入格式 第一行输入一个正整数n 以下n行描述该方
  • 最短Hamilton路径

    题目 题目链接 题解 状压dp f i j 表示从0点按照路径i走到j点的最短距离 其中i为二进制数 1表示走过某点 0表示未走过某点 比如10010表示经过了1 4两个点 而不经过0 2 3点 状态转移为 假设沿路径i走到j点经过k点 且
  • 过河卒 蓝桥杯 755

    题目描述 如图 A 点有一个过河卒 需要走到目标 B 点 卒行走规则 可以向下 或者向右 同时在棋盘上的 C 点有一个对方的马 该马所在的点和所有跳跃一步可达的点称为对方马的控制点 例如上图 C 点上的马可以控制 99 个点 图中的 P1
  • 斐波那契数列——UPC

    题目描述 斐波那契数列F满足如下性质 F1 1 F2 2 Fi 2 Fi 1 Fi 对于一个正整数n 它可以表示成一些不同的斐波那契数列中的数的和 你需要求出 有多少种不同的方式可以表示出n 输入 输入有多组数据 第一行为一个整数T 表示数
  • UVa 1347 Tour

    题目 Tour 题意 来自luogu John Doe想用最小的路程游览完所有目的地 每个目的地都用坐标xi yi表示 任何两目的地的xi都不相同 两目的地之间的路程是两点之间的直线距离 John是这样走的 他从最左边的点开始 然后只能向右
  • 最长上升子序列模板与优化后的模板

    未优化 include

随机推荐

  • mysql查询排名前5的语句_MySQL语句实现排名

    首先我们创建一张city popularity表 CREATE TABLEcity popularity regionint 10 NOT NULL COMMENT 1 国内 2 海外 city nameVARCHAR 64 NOT NUL
  • Vue.js全家桶仿哔哩哔哩动画 (移动端APP)

    项目地址 由于项目是移动端 电脑访问时可以切换成手机端 播放页面其实没有根据B站移动端来 比较粗糙 源码地址 欢迎Star 在线预览 项目描述 前端部分 实现的Swiper Toast Indicator组件 来自Mint ui 使用了Vu
  • 【HDFS】EditLogTailer功能及原理(二)-- selectInputStreams细节详解

    HDFS EditLogTailer功能及原理 一 整体流程 HDFS EditLogTailer功能及原理 二 selectInputStreams细节详解 HDFS EditLogTailer功能及原理 三 loadEdits方法细节详
  • Javascript变量提升预解析的理解

    预解析 JavaScript代码的执行是由浏览器中的JavaScript解析器来执行的 JavaScript解析器执行JavaScript代码的时候 分为两个过程 预解析过程和代码执行过程 预解析过程 把变量的声明提升到当前作用域的最前面
  • 使用python的pandas库把.data文件转化为csv文件

    1 问题引入 在数据分析 机器学习 深度学习中 我们经常会处理各种各样格式的数据 今天 博主在做房价预测时 采用波士顿房价数据集 从网上下载的数据集格式为 data 并不是我们喜闻乐见的csv格式 所以想采用pandas库将其转为为csv格
  • 【Redis】Redis 的学习教程(十)之使用 Redis 实现消息队列

    消息队列需要满足的要求 顺序一致 要保证消息发送的顺序和消费的顺序是一致的 不一致的话可能会导致业务上的错误 消息确认机制 对于一个已经被消费的消息 已经收到ACK 不能再次被消费 消息持久化 要具有持久化的能力 避免消息丢失 这样当消费者
  • linux怎么将磁盘剩余空间给分区,利用fdisk将硬盘剩余空间进行分区

    1 首先查看分区 发现300多G的硬盘 dev sdc1只使用了200多G而已 root local103 dbbackup df h Filesystem Size Used Avail Use Mounted on dev sda2 1
  • [黑科技] 使用Word和Excel自制题库自判断答题系统

    这篇文章是LZY老师告诉我的一个方法 如果你需要做题库 并且喜欢电子答题的方法 这篇文章或许会对你有所帮助 反正李老师班级的平均成绩高出其他班级的14分 这就是它的好处 希望这篇文章对我今后的学生有所帮助吧 注意 这篇文章涉及到Word特殊
  • 详解分布式共识(一致性)算法Raft

    分布式共识及Raft简介 所谓分布式共识 consensus 与CAP理论中的一致性 consistency 其实是异曲同工 就是在分布式系统中 所有节点对同一份数据的认知能够达成一致 保证集群共识的算法就叫共识算法 它与一致性协议这个词也
  • PyTorch 更改训练好的模型 继续训练

    目录 直接加载预训练模型 加载部分预训练模型 冻结部分参数 训练另一部分参数 微改基础模型预训练 微改基础模型 简单预训练 直接加载预训练模型 如果我们使用的模型和原模型完全一样 那么我们可以直接加载别人训练好的模型 my resnet M
  • SHADER学习笔记(一):Surface Shader

    Surface Shader是Unity为了方便shader编写提供的特殊功能 它对底层的vertex fragment shader做了封装 省去了一些重复代码编写的工作量 我的理解是它同时具有vertex fragment shader
  • [CISCN 2022 初赛]login_normal

    叠甲 菜 很菜 就是懂一点但是不多 可能涉及的错误会很多 有错误欢迎指出 同时对于这个疑问有解答的也欢迎留言 总之就是很菜 QAQ 这一道题 首先要考代码审计 来猜它这个 login 的格式 然后在通过它的 login 之后 通过传入可见字
  • 【Android】ViewModel原理分析

    概述 本文主要通过分析ViewModel源码解决以下两个疑问 1 ViewModel如何保证的唯一性 2 ViewModel如何保证数据不丢失的 为了解决这些问题 从ViewModel的构造开始 一般创建ViewModel的方法如下 Vie
  • 《消息队列高手课》内存管理:如何避免内存溢出和频繁的垃圾回收?

    不知道你有没有发现 在高并发 高吞吐量的极限情况下 简单的事情就会变得没有那么简单了 一个业务逻辑非常简单的微服务 日常情况下都能稳定运行 为什么一到大促就卡死甚至进程挂掉 再比如 一个做数据汇总的应用 按照小时 天这样的粒度进行数据汇总都
  • SQL Server用户登录失败

    SQL Server数据库中 如果我们忘记了 sa密码 又删除了jhyf kj administrators帐号 我们可以用下面的方法来修复 1 首先停止所有与SQLServer相关的服务 net stop SQL Server Integ
  • Spring Boot全面总结(超详细,建议收藏)

    前言 本文非常长 建议先mark后看 也许是最后一次写这么长的文章 说明 前面有4个小节关于Spring的基础知识 分别是 IOC容器 JavaConfig 事件监听 SpringFactoriesLoader详解 它们占据了本文的大部分内
  • 2021极客大挑战web部分wp

    Dark 看到url http c6h35nlkeoew5vzcpsacsidbip2ezotsnj6sywn7znkdtrbsqkexa7yd onion 发现后缀为 onion 为洋葱 下载后使用洋葱游览器访问 Welcome2021
  • git学习:github上传自己的代码到别人的仓库

    转载 原博客链接 总结 向别人贡献自己的代码 和传到自己仓库的区别 要先fork转化 clone仓库文件到电脑本地 然后进入文件夹 若想提交到非默认分支 要先git checkout到分支 pull分支下的最新代码 若还想创建新分支 用gi
  • 入門篇-耦合Coupling AC/DC/GND差別在哪

    摘自 https www strongpilab com p 156 示波器操作 入門篇 耦合Coupling AC DC GND差別在哪 2016 06 26 儀器 Instrument 示波器 Scope 0 示波器的Vertical選
  • Crested Ibis vs Monster——AT动态规划思想

    题目描述 Ibis is fighting with a monster The health of the monster is H Ibis can cast N kinds of spells Casting the i th spe