【题解】P10320 勇气(Courage)

P10320 勇气(Courage)

推导过程

本题是一道数学题,重点是如何推导出正确式子。

首先,先特判几个特殊点:

  1. \(n>=2\)\(x=2\) 时,是不存在解的,战斗力无论何时都不会超过 \(2^{n}\)

  2. \(x\) 不强化就以大于 \(2^{n}\)

  3. \(x\) 第一次强化达到 \(x^{2}\) 时,大于 \(2^{n}\)

现在开始推导公式。

先将 \(x\) 不强化到 \(x\) 强化完第五次列举了下来。

$ x,x^{2}, \frac{x{4}}{2{2}},\frac{x{8}}{2{6}},\frac{x{16}}{2{14}},\frac{x{32}}{2{30}},\cdots$

我们就会发现当 \(x>=1\) 时,\(ans_{k}=\frac{x^{2^{k}}}{2^{2^{k}-2}}\)

通过高中的 log 知识,我们可以将这个式子化简为 $ans_{k}=\log_{2}{\frac{n-2}{\log_{2}{x} -1} } $

注意式子要向上取整。

#include<bits/stdc++.h>
using namespace std;
double n,x;
long long g=1,h,k=0;
const int mod=11;
int main() {
	cin>>x>>n;
	if(x>=pow(2,n)) {
		cout<<0;
		return 0;
	}
	if(x*x>=pow(2,n)) {
		cout<<1;
		return 0;
	}
	if(x==2&&n>=2) {
		cout<<"inf";
		return 0;
	}
	cout<<ceil(logl((n - 2) / (logl(x) / logl(2) - 1.0)) / logl(2));
	return 0;
}

求赞。

posted @ 2024-04-12 18:51  Kcjhfqr  阅读(36)  评论(0)    收藏  举报
.poem-wrap { position: relative; width: 1000px; max-width: 80%; border: 2px solid #797979; border-top: none; text-align: center; margin: 40px auto; } .poem-left { left: 0; } .poem-right { right: 0; } .poem-border { position: absolute; height: 2px; width: 27%; background-color: #797979; } .poem-wrap p { width: 70%; margin: auto; line-height: 30px; color: #797979; } .poem-wrap h1 { position: relative; margin-top: -20px; display: inline-block; letter-spacing: 4px; color: #797979; font-size: 2em; margin-bottom: 20px; } #poem_sentence { font-size: 25px; } #poem_info { font-size: 15px; margin: 15px auto; }