Форум программистов, компьютерный форум 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++ С++задачка помогите пожалуйста...от этого зависит мой экзамен...или подскажите с чего начать....Код на С++ В школе продолжительность каждого урока 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 из целых чисел. Составить прогу для подсчета непарных(??????) элементов двумерной матрицы В, используя функцию обработки массива. подробнее

Показать сообщение отдельно
AemClock
6 / 6 / 1
Регистрация: 04.06.2010
Сообщений: 19
25.06.2010, 03:04     Подсчитать количество способов замостить шахматную доску доминошками
Как-то писал эту задачу, только она давалась как задача на динамику по профилю, а не комбинаторику, хотя есть наверно и комбинаторное решение, но его с ходу не заметно

C++
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
36
37
38
39
40
41
42
43
44
#include <iostream>
 
using namespace std;
 
long long  d[3000][3000],n,m,j,p1,p2,f[1000][1000];
 
void go(int p1,int p2,int len)
{
  if (len == n)
  {
    d[p1][p2] = 1;
    return ;
  }
  if (p1 & (1 << len) == 0)
  {
    go(p1, p2 | (1 << len), len + 1);
    if (len < n-1 && p1 & (1 << (len+1)) == 0)
    go(p1,p2,len+2);
  }
  else
    go(p1,p2,len+1);
}
int main()
{
  cin >> n >> m;
  for (int p = 0; p < (1 << n); p++)
  go(p, 0, 0);
  f[1][0] = 1 ;
  for (j=1;j<=(m+1);j++)
  {
    for (p2=0;p2<(1<<n);p2++)
    {
      long long sum = 0 ;
      for (p1=0;p1<(1 << n);p1++)
      {
        sum += f[j-1][p1]*d[p1][p2];
      }
      if (j == 1 && p2 == 0) continue ;
      f[j][p2] = sum ;
    }
  }
  cout << f[m+1][0];
  return 0;
}
 
Текущее время: 11:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru