当前位置: 首页 > ai >正文

2025春训第二十场

问题 B: 狗是啥呀

题目描述

在神秘的地狱深处,有着一种神秘的犬类生物,据传这种生物长了x个脑袋,并且具有强大的生命力。由于见过它的人全都下落不明,至今没有人知道它的真面目。

一位勇士为了斩杀这奇怪的生物,来到地狱一探究竟。勇士做了充足的准备,他在身上携带了n种武器,每种武器每次可以击毙这种生物di个头,但这种生物在这之后会吸收武器产生的能量,再长出hi个头。当它的头的数量小于等于0时,它就会被击败(且不能重新长出头)。注意,每种武器可以无限次使用。

作为勇士的智囊团中的一员,你需要告诉勇士,他最少需要使用多少次武器才能击败这种生物。

输入

输入第一行包含两个整数n,x,分别表示勇士的武器种类数与生物头的数量。

之后n行,每行给出di,hi。

输出

输出共一行,表示最少需要使用多少次武器。若不能击败,则输出 -1。

样例输入 Copy
【样例1】
3 10
6 3
8 2
1 4
【样例2】
4 10
4 1
3 2
2 6
1 100
【样例3】
2 15
10 11
14 100
样例输出 Copy
【样例1】
2
【样例2】
3
【样例3】
-1
提示

样例 1 解释:可以先使用一次第一个技能,生物还剩下个10-6+3=7个头。第二次使用第二个技能,剩下7-8=-1<0 个头,则直接被击败。

对于100%的数据,保证1≤n≤100,1≤x,di,hi≤109

错了好几遍。用武器砍,选武器-生长最大的 。最后一次选最厉害的武器直接砍掉

特判武器-生长都是负数,但是可以直接杀掉的

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,x;
ll d[109],h[109],k[109],m=0,c,q=0;
int main(){cin>>n>>x;for(int i=0;i<n;++i){cin>>d[i]>>h[i];k[i]=d[i]-h[i];}for(int i=0;i<n;++i){if(m<k[i]){m=k[i];c=i;}q=max(d[i],q);//cout<<"!"<<k[i]<<'\n';}if(q>=x){cout<<1;return 0;}if(m<=0){cout<<-1;return 0;}//cout<<x<<" "<<m<<'\n';ll z=x-q;ll ans=1+z/m+(z%m!=0?1:0);cout<<ans;return 0;
}

http://www.xdnf.cn/news/6901.html

相关文章:

  • vector(c++)
  • Mysql触发器(附案例)
  • day016-系统负载压力测试-磁盘管理
  • 应用层自定义协议与序列化
  • 毛泽东(井冈山)词三篇
  • 英语学习5.17
  • 电子电路:到底该怎么理解电容器的“通交流阻直流”?
  • 高频面试题(含笔试高频算法整理)基本总结回顾120
  • Conda 完全指南:从环境管理到工具集成
  • 飞帆控件 post or get it when it has get
  • FastMCP:为大语言模型构建强大的上下文和工具服务
  • C++类与对象--1 特性一:封装
  • vue.js 更新数据时,出现数据更新,界面没有更新的情况【普通对象,不包含数组】
  • NBA足球赛事直播源码体育直播M33模板赛事源码
  • B站锁定三倍速(自用)
  • Dubbo:Docker部署Zookeeper、Dubbo Admin的详细教程和SpringBoot整合Dubbo的实战与演练
  • gem5-gpu教程 第十章 关于topology 的Mesh network
  • USB基础知识
  • Selenium测试框架快速搭建
  • 多模态学习( 二 )——Token与Embedding的区别:从文本到向量空间的旅程
  • 手动实现 Transformer 模型
  • QT+EtherCAT 主站协议库—SOEM主站
  • 什么是差分传输?
  • 免费代理IP服务有哪些隐患?如何安全使用?
  • 智力题整理汇总版
  • 高频面试题(含笔试高频算法整理)基本总结回顾61
  • 浅谈前端架构设计与工程化
  • 【降维】t-SNE
  • 腾讯 CodeBuddy 杀入 AI 编程赛道,能否撼动海外工具霸主地位?
  • 力扣-283-移动零