[AtCoder] [經典競程 90 題] 020 - Log Inequality(★3)

題目連結: https://atcoder.jp/contests/typical90/tasks/typical90_t
題目大意:
問你 $\log_2 a < b \log_2 c$ 會不會成立。
看了官解才發現不會爆 uint64_t = =
總之就是要只用整數做就對ㄌ
#include <bits/stdc++.h>
using namespace std;
using llu = uint64_t;

llu add(llu a, llu b) {
	if (a > numeric_limits<llu>::max() - b) {
		return numeric_limits<llu>::max();
	}
	return a + b;
}

llu mul(llu a, int b) {
	llu r = 0;
	for (int i = 0; i < b; ++i) {
		r = add(r, a);
	}
	return r;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	llu a; int b, c; cin >> a >> b >> c;
	llu r = 1;
	for (int i = 0; i < b; ++i) {
		r = mul(r, c);
	}
	cout << (a < r ? "Yes" : "No") << '\n'; 
	return 0;
} 

留言

這個網誌中的熱門文章

[TIOJ] 1271. [IOI 2012] Scrivener 斯克里夫尼

[TIOJ] 1429. [APIO '12] 忍者調度問題

[Codeforces] 731D. 80-th Level Archeology