Форум программистов, компьютерный форум CyberForum.ru

Подсчитать количество способов замостить шахматную доску доминошками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ с файлом http://www.cyberforum.ru/cpp-beginners/thread149240.html
Есть задание Написать программу, которая считывает текст из файла и выводит на экран только цитаты. Вот прога: #include <fstream> #include <iostream> using namespace std; int main () { ifstream ifin ("inputtext.txt",ios::in);
C++ Определить, во сколько в школе заканчивается K-ый урок помогите пожалуйста...от этого зависит мой экзамен...или подскажите с чего начать....Код на С++ В школе продолжительность каждого урока 45 минут, а перемены между уроками – всего 5 минут. Первый урок начинается ровно в 8 часов утра. Напишите программу, отвечающую на вопрос «во сколько в этой школе заканчивается K-ый урок?» Входные данные. Вводится одно натуральное число K, не превышающее 15.... http://www.cyberforum.ru/cpp-beginners/thread149239.html
стек и очередь C++
ребят поделитесь плиз программами реализующими на си стек и очередь (хотябы ввод вывод данных)
C++ C++ нарисовать елочку с символов
Задача E. Елочка «Нарисуйте» с помощью символов лес. При этом не пользуйтесь командами перемещения курсора по экрану. Ваша программа должна последовательно выводить символы строк (или строки целиком). Лес — это одна или несколько елочек. Каждая елочка характеризуется количеством треугольников в ней и размером самого маленького треугольника. Елочка состоит из треугольников, у которых вершины...
C++ создать класс alpha http://www.cyberforum.ru/cpp-beginners/thread149230.html
Доброго времени суток. помогите написать класс. Создать класс Alpha таким образом чтоб при создании первого объекта и удалении последнего объекта этого типа на экран выдавались ответы сообщения применить статические компоненты класса. для VS 2008
C++ Составить прогу для подсчета непарных элементов двумерной матрицы Динамический массив В розмера m×n из целых чисел. Составить прогу для подсчета непарных(??????) элементов двумерной матрицы В, используя функцию обработки массива. подробнее

Показать сообщение отдельно
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
25.06.2010, 02:08  [ТС]     Подсчитать количество способов замостить шахматную доску доминошками
Преподаватель по комбинаторным алгоритмам,вернее даже его ученик со старших курсов..как он сказал это лёгкая задача с олимпиады..но с моими знаниями в алгоритмах и языках с/с++ мне не справиться((

Добавлено через 2 часа 6 минут
вся информация,которую я нашла по этому вопросу,состоит в этой процедуре на паскале..но как от неё отталкиваться для дальнейшего решения я не знаю((Ниже приведен код рекурсивной процедуры, которая заполняет строку d[p], то есть находит все профили, которые можно получить из p.Алгоритм вычисления D и A работает за
O(22n) (вычисление D) + O(22nm) (вычисление A) = O(22nm).
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
procedure go(n, profile, len : integer);
begin
    // n - из условия задачи
    // profile - текущий профиль
    // len - длина profile
            
    if (len = n) then begin 
        // как только profile получился длины n, выходим
        d[p][profile] := 1;
        exit;
    end;
    if (bit(p, len) = 0) then begin 
        // текущая ячейка в p (с номером len + 1) не занята
        go(p, profile + (1 shl len), len + 1);
        // положили горизонтальную доминошку
                
        if (len < n - 1) then
            if (bit(p, len + 1) = 0) then begin 
                // не занята еще и следующая ячейка
                go(p, profile, len + 2);
                // положили вертикальную доминошку
            end;
    end else begin
        go(p, profile, len + 1);
        // текущая ячейка занята, ничего положить не можем
    end;
end;
 
procedure determine_D;
var p : integer;
begin
  for p := 0 to (1 shl n) - 1 do
    go(p, 0, 0); // запускать надо именно с такими параметрами
end;
 
Текущее время: 22:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru