AtCoder Beginner Contest 085 D Katana Thrower(贪心)

AtCoder Beginner Contest 167 F:Bracket Sequencing 贪心分析 首先我们知道,判一个字符串是否合法,肯定是判任意前缀 ( 的个数一定大于等于 ) 的个数 而多个字符串考虑什么样的字符串放在最左边比较好。 对于一个字符串对拼接有影响的括号一定是自己内部匹配后剩的括号,比如  )(()(  内部匹配一对,剩2个左括号,一个右括号。 显然字符串内部括号匹配完后,剩的都是“(”,且剩的左括号的最多,这样的字符串放在最左边。比如()()((  剩2个左括号 同理,最右边一定是,剩的右括号最多的字符串。 依照最左最右,我们往中间放。 首先左括号剩的多的肯定尽量放左边,右括号剩的多的尽量放右边。 然后考虑次左应该放什么最优。 先把左括号剩的多的在左边安排好: 由于最左边 立即下载

Problem Statement

You are going out for a walk, when you suddenly encounter a monster. Fortunately, you have N katana (swords), Katana 1, Katana 2, …, Katana N, and can perform the following two kinds of attacks in any order:

Wield one of the katana you have. When you wield Katana ii (1≤i≤n), the monster receives aiai points of damage. The same katana can be wielded any number of times.

Throw one of the katana you have. When you throw Katana ii (1≤i≤N) at the monster, it receives bibi points of damage, and you lose the katana. That is, you can no longer wield or throw that katana.

The monster will vanish when the total damage it has received is H points or more. At least how many attacks do you need in order to vanish it in total?
Constraints

1 ≤ N≤ 1055
1 ≤ H ≤ 1099
1 ≤ aii ≤ bii ≤ 1099
All input values are integers.

题意:你有N把剑,怪兽血量H,第i把剑能挥砍造成aiai点伤害或投掷造成bibi点伤害(投掷后不能再用),问最少攻击多少次把怪兽打死?
思路:把投掷伤害高的剑扔出去,用挥砍攻击最高的反复砍

#include<iostream>
#include <algorithm>
using namespace std;

int n, h;
#define maxn 100000
class sword {
public:
    //挥砍攻击力
    int a;
    //投掷攻击力
    int b;
    bool operator<(sword& as) {
        return b < as.b;
    }
}s[maxn+5];

int main() {
    int maxa = 0;
    int dmg=0;
    int att=0;

    cin>>n>>h;
    for (int i = 0; i < n; ++i) {
        cin>>s[i].a>>s[i].b;
    }

    //按投掷攻击力的大小排序(重载<运算符)
    sort(s, s + n);

    //找到挥砍攻击力最大的那把
    for (int i = 0; i < n; ++i) {
        maxa = s[maxa].a < s[i].a ? i : maxa;
    }
    //把投掷攻击力大于最大挥砍攻击力的剑从大到小依次扔出去
    for (int i = n - 1; dmg < h&&s[i].b> s[maxa].a;--i) {
        if (i == maxa)continue;//不能把最大挥砍攻击的剑扔了
        dmg += s[i].b; ++att;
    }

    //投掷攻击力更大的剑都扔出去了,剩下的伤害用最大挥砍攻击的剑完成
    //这里要注意,当砍到最后一下的时候,是可以把这把剑扔出去的
    if (dmg < h) {
        if (s[maxa].a > s[maxa].b) {
        //挥砍攻击力比投掷攻击力高,最后一下仍是挥砍攻击
            att +=  (h - dmg) / s[maxa].a;
            //向上取整
            if ((h - dmg) % s[maxa].a != 0) 
                ++att;

        }
        else {//挥砍攻击力比投掷攻击力低,最后一下可以投掷攻击
            //提前把投掷攻击的伤害算上
            att += 1; dmg += s[maxa].b;
            if (dmg < h) {
                att += (h - dmg) / s[maxa].a;
                //向上取整
                if ((h - dmg) % s[maxa].a != 0) 
                    ++att;
            }
        }
    }
    cout << att;
}

长期换衣行人重识别(Long-Term Clothes-Changing Person Reid)数据集汇总 长期换衣行人重识别任务中目前常用的数据集总览目前换衣数据集的主要问题数据集换衣/总体情况集统计DeepChange(2021)LaST(2021)COCAS(2020)VC-Clothes(2020)LTCC(2020)PRCC(2019)Celebrities-reID(2019) 总览 在长期换衣行人重识别的任务当中,数据集的获取(尤其是对于学术环境下)是一个难点,主要的困难有以下几点: 采集大规模的数据集比较困难。 采集不同的衣服的数据集比较困难。 采集不同衣服不同角度的数据集比较困难。 目前也有 阅读详情

相关推荐

从0到1:提示工程架构师搭建Agentic AI系统的全流程实战手册

Agentic AI(自主智能体)是具备自主决策能力的大模型应用感知(Perceive):获取外部环境信息(比如代码仓库、用户输入、数据库数据);记忆(Memory):存储和检索历史信息(比如过去的审计记录、用户偏好);规划(Plan):将复杂任务拆解为可执行的步骤(比如“代码审计”拆成3步);行动(Act):调用工具或API完成具体操作(比如调用Git克隆仓库、调用Safety查漏洞);反馈(Feedback):根据结果调整策略(比如用户说“报告不够详细”,下次增加逻辑漏洞的分析深度)。

AI Agent Harness Engineering 1042

AtCoder Beginner Contest 085 最后一题

em....atcoder beginner的题是真的挺水,稍微有一点点难度就最后两题,感觉不能ak都不好意思说出来。还是做一下总结吧,下一次努力ak!!! Katana Thrower:https://abc085.contest.atcoder.jp/tasks/abc085_d 题目大意我翻译过来是:给你n个工具,任一个工具可以选择“扔掉”和“擦掉”两种方式中的一种,擦掉的话可以重复利用

RockyHOO1209的博客 421

SWIFT报文实战指南:从MT700到MT799的信用证操作全解析

本文深入解析了国际贸易中信用证操作的核心SWIFT报文流程,从开证的MT700到各类通知、修改及结算报文(如MT707、MT730、MT754、MT732/734等)。通过实战案例与关键字段拆解,指导外贸与银行从业者精准处理报文,规避风险,并探讨了利用自动化工具提升处理效率的方法,助力保障跨境交易顺畅。

weixin_29015801的博客 878

AtCoder Beginner Contest 085 D Katana Thrower (贪心+计算机除法特性)

Problem Statement You are going out for a walk, when you suddenly encounter a monster. Fortunately, you have N katana (swords), Katana 1, Katana 2, …, Katana N, and can perform the following two kind

深海沧澜的博客 539

VS配置RTKLIB(卫星定位开源代码)环境

@RTKlib代码调试教程-Visual Studio 2019 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ##RTKLIB-rtklib_2.4.3 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @RTKlib代码调试教程-Visual Studio 2019 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技

qq_42209977的博客 4486

PacketTacer烟雾传感器读数为0的解决方法

PacketTacer烟雾传感器读数为0的解决方法

ChloeMax_的博客 1903

AtCoder Beginner Contest 085 D - Katana Thrower【贪心】

AtCoder Beginner Contest 085 D - Katana Thrower Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement You are going out for a walk, when you suddenly encounter a monster. F

nobleman 906

高效穿搭博主内容制作指南:DeepSeek+豆包+即梦AI+剪映黄金工作流

大家好,我是硅基打工人! 只需3步实现AI自动化生成穿搭带货图文,日均产出效率提升10倍

TuFuir的博客 2677

Atcoder C - Alchemist(贪心)

题目在这 -- 题目大意是有一个数列(调料)a1,a2,a3,.............an。 然后往锅里放,没放进两个 ,然后把这个数(调料)放到数列中去,依次进行。问最后的值最大是多少? 思路:当时想的也是贪心,想的是大数被/2比小数/2浪费的多。所以从小到大排个序就出来了,然后我一直考虑精度问题(题目压根没顾及精度。。),没敢直接相加/2,是先通分,最后再除。结果爆long l...

一身清贫怎敢入繁华 786

手把手教你用VSCode+SDL在Ubuntu上跑LVGL8.2模拟器(附插件清单)

本文详细介绍了在Ubuntu系统上使用VSCode和SDL库搭建LVGL8.2模拟器环境的完整流程,特别适合嵌入式开发者(如全志F1C100s平台)进行UI设计验证。从环境配置、项目编译到VSCode深度集成,提供了实用技巧和常见问题解决方案,帮助开发者实现'先模拟后真机'的高效开发模式。

weixin_33737134的博客 358

【Unity】【VR】如何让Distance Grab抓取物品时限制物品的Rotation

VR中Canvas抓取旋转问题的解决方案 在VR应用中,Canvas作为UI面板常需被抓取拖动,但默认会随手柄产生Z轴旋转,导致UI歪斜。Unity的Rigidbody冻结旋转功能对此无效,因为XR抓取直接修改Transform而非物理模拟。

每日出拳老爷子的博客 611

AtCoder - ABC 160 - DE(贪心)

有一个有 N 个点的无向图G,相邻两点间有一条边,在顶点 X, Y 之间加一条边,总共有 N 条边。对于k从 1 到 N,求出对于每个 k,图G中满足两点最短路径为 k 的整数对数。

m0_64172681的博客 411

基于STM32单片机的智能分拣系统

基于STM32单片机的智能分拣系统是一种高效、精准的自动化分拣解决方案,适用于物流、仓储、制造业等领域。该系统利用STM32单片机作为核心控制器,结合传感器技术、电机控制算法和通信模块,实现对物品的自动识别、分类和分拣。通过智能化的设计,该系统能够大幅提高分拣效率,降低人工成本,并减少错误率。基于STM32单片机的智能分拣系统是一种高效、精准、低成本的自动化解决方案,能够广泛应用于物流、制造、环保等领域。

qq_62634009的博客 1940

AtCoder - ABC 267 - E(二分/贪心)

给定一个有 n 个点 m 条边无向图,每个点都有权值。每次要删除一个点及其所连的所有边,删除某点的代价是与这个点直接相邻的所有点的权值和,使 n 次删除操作后的最大值最小,求其最小值。

m0_64172681的博客 689

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

AtCoder - ABC 161 - E(贪心)

给你一个长度为 n 的字符串 s(仅由 ’x’ 和 ’o’ 组成),表示n天的上班状态,’o’ 表示该天上班;’x’ 表示不上班。要求总共上班 k 天,且两相邻上班时间之间至少隔 c 天。输出无论怎么选一定要选的位置。

m0_64172681的博客 422

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

贪心(AtCoder 189 C,CodeForces - 1328C)

AtCoder 189 C 题意: 给你一个长度小于1e4的正数组成的数组,从中选一个长为a的连续区间,满足这个区间的每一个数都大于等于b,求a∗ba*ba∗b的最大值,其中a和b你可以任意选定 思路: 贪心,最优解一定满足 b为这个最优区间的最小值(反证法: 如果b比最优区间的最小值还大的话,最优区间就不是它了,b比最优区间的最小值还小的话,就不是最优解了) 这个最优区间左端点左边的值要么不存在,要么比b小,同样右端点右边的值要么不存在,要么比b小(反证法: 否则最优区间还可以变大,与题意不符) 结论

人工智能方向,计算机视觉(https://github.com/chenshunpeng) 405

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Atcoder_abc226G-贪心好题

传送门 官方题解 首先看那些“不能放2个”的,即重量为3~5的。从贪心角度感性地看,倒序决策是合理的。 因为我们希望空间利用率为100%,所以对于重量为4和5的物品,都是按照升序依次处理即可。但对于重量为3的物品,则不能按照升序依次处理,因为会wa。那么应该按照什么顺序呢? 我们先分析只剩重量为1和2的物品的情况,再回答以上问题。显然,重量为1的物品的空间利用率总是100%,因此关键是计算当前能容纳的重量为2的物品数: LL num = 0; rep(i,2,5) num += (i/2)*b[i]; 如

hans774882968的博客 749

【AtCoder】AtCoder Beginner Contest 432 ABCDE (贪心 | 贪心 | 数学 | 模拟 + 并查集 | 分类讨论 + 数据结构)

对于 r <= A <= l 的情况,min(r,A) = r,那么 max(l, min(r,A)) 就等于 max(l,r) = l。对于 l <= A <= r 的情况,min(r,A) = A,那么 max(l, min(r,A)) 就等于 max(l,A) = A。对于 A < l 的情况,min(r,A) = A,那么 max(l, min(r,A)) 就等于 max(l,A) = l。设分给小朋友的小糖果数为 a,大糖果数为 b,总价值为 W,那么就有以下等式。

qq_61422664的博客 859

2018.07.12 atcoder Go Home(贪心)

传送门 题意简述:大家在数轴上生活,公司在 s。 班车送所有人回家,有 n 个住处,第 i 个位置在 xi,居住了 pi 的人。 保证 xi 互不相同。 大家⼀起投票向前还是向后,如果票数相同就固定向数轴负方向,每个⼈是自私的,希望自己尽早回家。 (但是注意,虽然是自私的,并不⼀定投自己家的方向) 到家了必须下车(因为自私) 问大家都做...

weixin_30552635的博客 202

AtCoder Beginner Contest 103 D(贪心)

AtCoder Beginner Contest 103 D 题目大意:n个点,除第n个点外第i与第i+1个点有一条边,给定m个a[i],b[i],求最少去掉几条边能使所有a[i],b[i]不相连. 按右端点从小到大排序,如果当前选的去掉的边在区间内,那么符合条件,否则ans++,并贪心地把去掉的边指向右端点,因为前面的区间都满足条件了,所以要去掉的边要尽量向右移使其满足更多的区间。...

bannaiting9193的博客 234

(AtCoder Regular Contest 128)A(贪心)

A 思路:最终获得的金子重量为x*ai/aj (i<j),只要保证ai/aj最大即可。可以确定左边界ai的值,然后寻找后面aj的最小值,eg:n = 5,序列5 4 3 2 1,标记为1 0 0 0 1最合适。 (1)寻找相邻非增序处找到最大的位置,并标记(注意这里一定要成对,所以要判断是不是最后一个) (2)在(1)中确定了最大值,这里只要向后寻找最小值即可,寻找相邻非递减位置,并和(1)配对标记 参考文章 代码: #include <bits/stdc++.h> using names

积少成多,水滴石穿 227

AtCoder practice contest B 归并排序 + 二分 / 贪心 + 信息熵

对于 $n = 26$ 的情况,归并排序最坏情况下需要 $99$ 次比较。对于 $n=5$ 的情况,比较 $c_1,c_2$,再比较 $c_3,c_4$,接着比较两组数据的最小者(不妨假设为 $c_1$),此时得到了一个有序的三元组 $c_1,c_3,c_4$,二分求解 $c_5$ 的位置并插入,此时 $c_1$ 右侧的元素至多为 $3$,再次二分插入 $c_2$ 即可。由于插入一个有序三元组需要二分比较的次数为 $2$,故总比较次数 $3+2+2=7$ 满足条件。

neweryyy的博客 480

AtCoder题解 —— AtCoder Beginner Contest 187 —— D - Choose Me —— 贪心

题目相关 题目链接 AtCoder Beginner Contest 187 D 题,https://atcoder.jp/contests/abc187/tasks/abc187_d。 Problem Statement AtCoder City will hold a mayoral election. The candidates are Aoki and Takahashi. The city consists of NNN towns, the iii-th of which has AiA_iA

努力中的老周的专栏 774

AtCoder Beginner Contest 167 F. Bracket Sequencing(贪心 比较法 2022WF H题同款)

这个等价于a.se+b.fi>b.se+a.fi,即a.se-a.fi>b.se-b.fi。当min(a.fi,a.se+b.fi)>min(b.fi,b.se+a.fi),a在前。先选x>0 y>0的,选完之后选x<0 y>0的,先选x绝对值小的后大的,然后选x<0 y<0的,顺序不太显然,但是可以考虑比较法决定哪个在前,然后按这个排序一下就过了,其实打开min符号的话,可以发现是良序的,考虑第二个串和第三个串的顺序时,手玩发现,一个单独的串里的前缀最小值x,前缀和为y。前缀和-前缀最小值大的在前面。

小衣同学的博客 326

贪心算法专题

反悔贪心的精髓就是,对于当前的最优解直接记录它对答案的贡献,而后续遇到更优解时只需要更新上一次最优解(因为堆自动排序了,所以更新只需要在O(1)的时间复杂度内完成)。毫无疑问,O(n²)的时间复杂度对于n

Antonio915的博客 1229

[AtCoder Educational DP Contest] X - Tower(贪心 + dp)

梦回初学贪心编程社排队的奇奇怪怪排序了

760
上一篇: Codeforces 907A Masha and Bears
下一篇: codeforces 913 c Party Lemonade(贪心+DP)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值