Дана прямоугольная клеточная доска размера m ×n клеток. также дано неограниченное коли- чество стандартных доминошек размера 2 × 1 клетку. доминошки можно поворачивать. требуется уложить как можно больше доминошек на доску так, чтобы соблюдались следующие условия: 1. каждая доминошка полностью покрывает две клетки доски. 2. никакие две доминошки не перекрываются. 3. каждая доминошка полностью лежит внутри доски. касание краев доски допускается. найдите максимальное количество доминошек, которое можно уложить с данными ограничени- ями. формат входных данных в единственной строке записано два целых числа m и n — размеры доски в клетках (1 ⩽ m ⩽ n ⩽ 16). формат выходных данных выведите одно число — максимальное количество доминошек, которое можно уложить. язык с++ , выполняется с long long в приложении code : : bloks
Как то так
Объяснение:
// file_scope_using_namespace.cpp#include <iostream>#include <cstdlib>// "Математические функции".#include <cmath>using namespace std;// Определение своей функции.double log(double base, double arg){ // Через стандартный натуральный логарифм. return log(arg) / log(base);}int main(){ double a = 0, b = 0; // Числа с плавающей запятой. cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout.precision(16); // 16 значащих знаков. cout << "log(b, a) = " << log(b, a) << endl; return EXIT_SUCCESS;}
3 числа
Объяснение:
121₈ = 1 * 8² + 2 * 8¹ + 1 * 8⁰ = 1 * 64 + 2 * 8 + 1 * 1 = 64 + 16 + 1 = 81₁₀
120₈ = 1 * 8² + 2 * 8¹ + 0 * 8⁰ = 1 * 64 + 2 * 8 + 0 * 1 = 64 + 16 = 80₁₀
1010011₂ = 1 * 2⁶ + 0 * 2⁵ + 1 * 2⁴ + 0 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰ = 1 * 64 + 0 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 64 + 16 + 2 + 1 = 83₁₀
1001010₂ = 1 * 2⁶ + 0 * 2⁵ + 0 * 2⁴ + 1 * 2³ + 0 * 2² + 1 * 2¹ + 0 * 2⁰ = 1 * 64 + 0 * 32 + 0 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 = 64 + 8 + 2 = 74₁₀
4D₁₆ = 4 * 16¹ + D * 16⁰ = 4 * 16 + 13 * 1 = 64 + 13 = 77₁₀
81₁₀ > 77₁₀
121₈ > 4D₁₆
80₁₀ > 77₁₀
120₈ > 4D₁₆
83₁₀ > 77₁₀
1010011₂ > 4D₁₆
74₁₀ < 77₁₀
1001010₂ < 4D₁₆