首页 > 其他分享 >T3 飞刀传承 题解

T3 飞刀传承 题解

时间:2024-07-18 13:41:26浏览次数:13  
标签:int 题解 T3 凶兽 second 飞刀 伤害 李家

题目描述

李家自古以来就是飞刀名门,每一任家主都唤作小李。这一代的小李更是青出于蓝,将祖传的飞刀绝技使得出神入化,年纪轻轻便继承了李家祖传的招式,担下了家主之位。不料有日凶兽来袭,李家满门几尽被灭,只剩少数流落在外的弟子得以幸存。他一度想要自尽,却因李家飞刀绝技不能在他手上断绝的信念支撑了下来,残余一口气。现在他将飞刀之术传于你,希望道力高深的你能够帮助他斩灭凶兽。将来遇到漂泊在外的李家弟子能够将飞刀绝技传承下去。
现在你手里有\(n\)把刀,每把刀可飞可砍,对于第\(i\)把刀,如果你用刀砍,将会给凶兽造成\(x_i\)点伤害;如果你使用飞刀之术,将会给凶兽造成\(y_i\)点伤害,但飞出去之后,这把刀就没了。
凶兽的血量\(h\),问如果将凶兽消灭最少需要几次操作。

题意简述

你有\(n\)把刀,要打一个血量为\(h\)的凶兽。你有用刀砍和飞刀两种攻击方式。对于第\(i\)把刀,刀砍的伤害为\(x_i\),飞刀的伤害为\(y_i\),但飞出去后第\(i\)把刀就没了。
问杀死凶兽最少需要几次操作。

解题思路

因为题目保证\(x_i\leq y_i\),所以优先考虑用飞刀杀死凶兽,但又考虑到全部飞刀可能杀不死凶兽,因此要分两种情况判断:

  • 飞刀能杀死凶兽:对飞刀的伤害从大到小排序,依次飞出每一把刀,直到\(h\leq0\)为止,输出飞出的刀数即可。
  • 飞刀不能杀死凶兽:留下一把刀砍伤害最高的刀,将其它刀按飞刀的伤害从大到小排序,飞刀扔完后一直砍,直到凶兽的\(h\leq0\)为止,输出扔出的飞刀数\(+\)砍的次数即可。

\(AC\ \ Code\)

#include<bits/stdc++.h>
using namespace std;
pair<long long,long long>a[100005];
long long n,h,ans,sum,cnt;
int main()
{
	scanf("%lld%lld",&n,&h);
	for(int i(1);i<=n;++i)scanf("%lld%lld",&a[i].first,&a[i].second),sum=max(sum,a[i].first);
	sort(a+1,a+n+1,[&](pair<long long,long long>a,pair<long long,long long>b){return a.second>b.second;});
	for(int i(1);i<=n;++i)
	{
		if(a[i].second>=sum&&h>0)h-=a[i].second,++cnt;
		else break;
	}
	if(h<1)printf("%lld",cnt),exit(0);
	if(h%sum!=0)printf("%lld",cnt+h/sum+1);
	else printf("%lld",cnt+h/sum);
	return 0;
}

标签:int,题解,T3,凶兽,second,飞刀,伤害,李家
From: https://www.cnblogs.com/988176-/p/18309348

相关文章

  • T2 替换字母2 题解
    题目描述:有长度为\(n\)的字符串,仅包含小写字母。小信想把字符串变成只包含一种字母。他每次可以选择一种字符\(c\),然后把长度最多为\(m\)的子串中的字符都替换成\(c\)。小信想知道最少需要操作几次能让字符串只包含一种字母。题意简述给定一个长度为\(n\)的小写字母串,每次可以......
  • T1 此方的身高排序 题解
    题目描述:体育馆里有\(n\)个人正在排队等待着上体育课,他们每个人都不一样高。此方想要把队伍从小个子到高个子进行排序,即让队伍身高为升序。此方每次调出一人,让此人和在他后面的人比身高,如果比对方高,则两人交换位置并和下一个人继续比较,直到比对方矮或者已经在队尾。现在给出......
  • CF208E 题解
    BloodCousins前置知识:线段树合并。我们先把题目转化一下。这里先设\(v\)的\(p\)级祖先为\(u\),事实上要求的东西就是\(u\)的\(p\)级后代的个数减\(1\),减\(1\)是因为要把自己减去。显然这个目标点\(t\)要满足两个要求:\(t\)在\(u\)子树内。设\(dep_u\)表......
  • P3242 接水果 题解
    Statement树,给\(m\)条带权路径\((a,b,v)\),\(q\)次询问包含\((u,v)\)的路径中的第\(k\)小权值.Solution好题!这篇题解延伸出了很多东西。首先路径的包含关系转为矩形(二维限制关系)是比较显然的.具体地,\((u,v)\)包含\((a,b)\)有两种情况:\(u,v\)无祖先关系:\(a\)在......
  • P1912 [NOI2009] 诗人小G 题解
    我们设\(s_i\)表示前\(i\)个句子的长度之和,这样就有dp\[f_i=\min_{j<i}\big\{f_j+|s_i-s_j+i-j-1-L|^P\big\}\]我们设\(w(l,r)=|s_r-s_l+r-l-1-L|^P\),如果\(w\)满足四边形不等式,则原dp具有决策单调性。设\(u=(s_i+i)-(s_j+......
  • [题解]P1452 【模板】旋转卡壳 | [USACO03FALL] Beauty Contest G
    P1452【模板】旋转卡壳|[USACO03FALL]BeautyContestG旋转卡壳模板题。凸包用的是Andrew算法,就不详述了,具体可以查查资料了解,但提一嘴Andrew算法的一些细节问题:Andrew算法的一些细节Andrew算法的模板代码如下:sort(a+1,a+1+n,cmp);st[++top]=1;for(inti=2;i<=n;i++){ ......
  • 【数学建模】——多领域资源优化中的创新应用-六大经典问题解答
    目录题目1:截取条材题目 1.1问题描述1.2数学模型1.3求解1.4解答题目2:商店进货销售计划题目2.1问题描述2.2数学模型2.3求解2.4解答题目3:货船装载问题题目3.1问题重述 3.2数学模型3.3求解3.4解答题目4:城市消防站选址问题 题目4.1问题重述4.2......
  • 题解:P10733 [NOISG2019 Prelim] Lost Array
    题解:P10733[NOISG2019Prelim]LostArray思路对于任意\(\min(X_{A_{i}},X_{B_{i}})=C_{i}\)。只要让\(X_{A_{i}}\)与\(C_{i}\)取\(\max\)值。\(X_{B_{i}}\)与\(C_{i}\)取\(\max\)值。这样可以让\(\min(X_{A_{i}},X_{B_{i}})\)绝对是\(C_{i}\)。对于为赋值......
  • 题解:P10781 【MX-J1-T1】『FLA - III』Spectral
    本题的主要思路就是数学。首先,让我们先来打一个表。\(i\)\(1\)\(2\)\(3\)\(4\)\(\dots\)\(T_{i}\)\(k\)\(1.5k\)\(1.5k\)\(1.375k\)\(\dots\)易用肉眼看见,自\(T_{3}\)之后数越来越小,于是我们大胆猜测,若\(n\ne1\),则它的最大值是\(1.5k\)否则\(k\)。......
  • 题解 P1031 [NOIP2002 提高组] 均分纸牌
    link贪心题中描述每一堆牌只能移动若干张牌到相邻的牌堆上确定了局部最优解必定能推导出全局最优解。易知均分完后,每堆牌的数量都为纸牌总数的平均数\(\mathrm{arg}\)。所以我们可以预处理每堆牌跟\(\mathrm{arg}\)的差距for(inti=1;i<=n;++i)sum+=a[i];......