首页 > 其他分享 >Codeforces Round 635 (Div. 2) B. Kana and Dragon Quest game

Codeforces Round 635 (Div. 2) B. Kana and Dragon Quest game

时间:2023-10-16 17:34:53浏览次数:32  
标签:10 geq 巨龙 frac 635 19 Codeforces 血量 Kana

你需要击败一只巨龙,他有 \(h\) 点血量,你可以使用以下两种攻击方式:

  • 黑洞:使巨龙的血量变为 \(\lfloor \frac{h}{2} \rfloor + 10\) 。可以使用 \(n\) 次。
  • 雷击:使巨龙的血量变为 \(h - 10\) 。可以使用 \(m\) 次/

当巨龙的血量 \(h \leq 0\) 时,你将他击败了。询问你是否可以将他击败。

显然黑洞的造成的伤害是一个降序函数,\(\lceil \frac{h}{2} \rceil - 10 \geq 10\) ,解得 \(h \geq 19\) 。

于是最优策略为一当 \(h \geq 19\) 并且 \(n \geq 1\) 时一直使用黑洞,\(n -= 1, x = \lfloor \frac{n}{2} \rfloor + 10\) ,时间复杂度为 \(\log_2 n\) 。

再计算剩余的血量是否可以通过雷击消灭,即 \(h \leq 10 * m\) 。

view
#include <bits/stdc++.h>
typedef long long ll;
void solve(){
	int x, n, m; std::cin >> x >> n >> m;
	while (x >= 19 && n >= 1) {
		n -= 1;
		x = x / 2 + 10;
	}
	std::cout << (x <= 10 * m ? "YES" : "NO") << '\n';
}
int main() {
	int _ = 1; std::cin >> _;
	while (_--) {solve();}
	return 0;
}

标签:10,geq,巨龙,frac,635,19,Codeforces,血量,Kana
From: https://www.cnblogs.com/zsxuan/p/17767872.html

相关文章

  • Codeforces Round 637 (Div. 2) - Thanks, Ivan Belonogov! A. Nastya and Rice
    纳斯塔亚掉了\(n\)个谷物,每个谷物的重量范围在\([a-b,a+b]\)。她猜测谷物的总重量范围在\([c-d,c+d]\)。询问她的猜测是否正确。显然,若\([n(a-b),n(a+b)]\)和\([c-d,c+d]\)有交,则她的猜测正确。view#include<bits/stdc++.h>typedeflonglongll;......
  • Codeforces Round 633 (Div. 2) A. Filling Diamonds
    给定一个正整数\(n\),询问有多少种方式填充满图中\(4n-2\)的图。你可以使用的菱形:竖着摆放和横着摆放都是一种方案。显然选择某个位置竖着摆放,其他所有地方只能横着摆放,这样的位置有\(n\)个。具体图形见:https://codeforces.com/problemset/problem/1339/Aview#includ......
  • Codeforces Round 636 (Div. 3) A. Candies
    \(vv\)有\(n\)个糖果,\(vv\)记得这些糖果是按如下方式购买的:第\(i\)天买了\(2^{i-1}x\)个,总共买了\(k\)天,\(k>1\)。但是\(vv\)忘了\(x\)是多少,询问任意一个满足条件的\(x\)。保证给出的\(n\)存在这样一个\(x\)。显然,根据几何或二进制证明,有\(\sum_{......
  • CodeForces 887E Little Brother
    洛谷传送门CF传送门根据初中数学知识,圆心在\(AB\)线段的中垂线上。又因为给定圆与\(AB\)线段所在直线不交,所以圆心在中垂线的一端极远处完全包含这个给定圆,在另一端极远处与这个给定圆相离。而具体在哪一端只与圆心在\(AB\)的左侧还是右侧有关。因此可以二分找到与给......
  • Educational Codeforces Round 91 (Rated for Div. 2) A. Three Indices
    给一个\(n\)个整数的排列\(p_1,p_2,\cdots,p_n\),需要找到三个数\(i,j,k\)满足:\(1\leqi<j<k\leqn\)\(p_i<p_j\),\(p_j<p_k\)否则回答不可能。\(key\):若存在上述\(i,j,k\),则存在\(x\)满足\(p_{x-1}<p_{x},p_{x}>p_{x+1......
  • * Codeforces Round 665 (Div. 2) A. Distance and Axis
    有一个点\(A\)在\(OX\)正坐标轴上的\(x\)坐标为\(n\)。需要找到一个点\(B\),使得\(||OB|-|AB||=k\)。现在给出非负整数\(n\)\(k\),你可以执行任意次以下操作:每步操作可以使\(A\)的坐标加一或减一。询问最少需要进过多少次操作使\(B\)可以存在。先假设出......
  • Codeforces Round 903 (Div. 3)
    [比赛链接]A.Don'tTrytoCount直接用string的可加性,每次s+=s相当于翻倍了,因为\(nm<=25\)所以最多翻倍5次。判断什么的直接模拟就行。#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstring>#include<cstdlib>#inclu......
  • Codeforces Round 903 (Div. 3) F. Minimum Maximum Distance(图论)
    CodeforcesRound903(Div.3)F.MinimumMaximumDistance思路对标记点更新fg,从0开始进行bfs,更新d1为所有点到0的距离获得到0最远的标记点L,从L开始bfs,更新d2为所有点到L的距离获得距离L最远的标记点R,从R开始bfs,更新d3为所有点到R的距离遍历所有点,这个点与标记点的最大距......
  • CodeForces 1886E I Wanna be the Team Leader
    洛谷传送门CF传送门把题意抽象成,给你长为\(n\)的序列\(a\)和长为\(m\)的序列\(b\),初始有\(m\)个空集合(可重集),\(a\)中的每个元素至多被分到\(m\)个集合中的一个。要求最后第\(i\)个集合\(T_i\)不为空,且\(\forallx\inT_i,x\ge\frac{b_i}{|T|}\)。要求构造......
  • Codeforces Round 671 (Div. 2) A. Digit Game
    \(R\)和\(B\)在玩一个数字游戏,给一个含有\(n\)位的正整数\(x\)。俩人轮流操作,\(R\)先行动。在每一步中,\(R\)可以选择\(x\)中一个未被标记的奇数位置并标记,\(B\)可以选择\(x\)中一个未被标记的偶数位置并标记。当最后只剩下一个未被标记的位置时,让这个数为\(m\)......