CF1217B

题意:

有一个有 $ x $ 个头的龙,你有 $ n $ 种方案,每种方案中包含你可以砍掉的头 $ d_i $ 和龙会生长的头 $ h_i $

找到一种方案,使得操作数最少。

解法:

考虑贪心,因为没有规定每种方案只能使用一次,所以我们可以记录一个最大的 $ d_i - h_i $ ,每次减去这个值。

又因为如果我们可以一次砍死龙,龙就不会重新复活,所以记录一个 $ d_{max} $ 用于最后的斩杀。

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath> using namespace std; #define LL long long
#define N 110 int T,n,x,ans,max_d;
int attack,life,max_a; int main() {
scanf("%d",&T);
while(T--) {
scanf("%d%d",&n,&x);
max_a = 0,ans = 0,max_d = 0;
for(int i = 1 ; i <= n ; i++) {
scanf("%d%d",&attack,&life);
max_d = max(max_d,attack - life);
max_a = max(max_a,attack);
}
if(max_a >= x) {
puts("1");
continue;
}
if(max_d <= 0) {
puts("-1");
continue;
}
x -= max_a;
ans = x / max_d + 1;
if(x % max_d) ans++;
printf("%d \n",ans);
}
//system("pause");
return 0;
}

CF1217B的更多相关文章

  1. CF1217B Zmei Gorynich

    You are fighting with Zmei Gorynich — a ferocious monster from Slavic myths, a huge dragon-like rept ...

随机推荐

  1. 【Transact-SQL】SQL Server自动把left join自动转化为inner join、以及关联时的数据重复问题

    原文:[Transact-SQL]SQL Server自动把left join自动转化为inner join.以及关联时的数据重复问题 1.SQL Server自动把left join自动转化为inn ...

  2. mini.DataGrid使用说明

    mini.DataGrid表格.实现分页加载.自定义列.单元格渲染.行编辑器.锁定列.过滤行.汇总行等功能.Extend    mini.PanelUsage <div id="dat ...

  3. Django rest-framework框架-组件之渲染器

    渲染器: from rest_framework.renderers import BrowsableAPIRenderer,AdminRenderer,HTMLFormRenderer,JSONRe ...

  4. JavaScript--关于闭包(closure)

    js代码在执行前会做的几件事情: 1.代码检测 2.预编译:在执行代码之前会对代码中的函数以及变量提前声明 并且做一些其他的处理 1.函数在执行前的一瞬间,会生成一个OA(object action) ...

  5. HTML中关于 浮动 的简单说明

    1.首先,标签之所以有存在等级分类,是因为他们处于标准文档流(块级元素,行内元素,行内块元素)当中. 2.如何脱离标准文档流? 浮动 绝对定位 固定定位 这些可以让一个标签脱离标准文档流,而元素一旦脱 ...

  6. vim文件时自动添加作者、时间、版权等信息

    在工作中,搞运维的工程师往往会编写或完善自动化脚本时,都会手动添加表头注释,例如版权声明.作用.时间等信息提示,如果每次都手动编辑添加会大大消耗时间,所有我们可以利用快捷方法来节省时间,一种是手动在家 ...

  7. web容器(weblogic、resin、tomcat、jboss对比)

    WebLogic 12c Linux静默安装 weblogic11g 密码忘记解决方案 glassfish和tomcat各自的优势和劣势 Linux Resin4.0 安装配置(优质) 对比 . we ...

  8. Echarts如何添加鼠标点击事件?防止重复触发点击事件

    Echarts如何添加鼠标点击事件? 1.通常我们只使用了以下代码,通过配置项和数据显示图表. var myChart = echarts.init(document.getElementById(' ...

  9. Windows下计算md5值

    目录 Windows下计算md5值 1.linux 下计算md5值 2.Windows下计算md5值 Windows下计算md5值 1.linux 下计算md5值 [root@master yl]# ...

  10. What Linux bind mounts are really doing

    Lots of Unixes have some form of 'loopback' mounts, where you can mount a bit of an existing filesys ...