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

Программа "ОФИЦЕРЫ" - C++

Восстановить пароль Регистрация
 
Intel
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 15
12.05.2011, 12:35     Программа "ОФИЦЕРЫ" #1
Подсчитать количество способов расставить j слонов на доске nxn.

Я на сайте http://e-maxx.ru/algo/bishops_arrangement нашел довольно неплохое объяснение её но при попытки реализации выводит ошибку в строчке vector < vector<int> > d (n*2, vector<int> (k+2));
//error: 'vector' was not declared in this scorp //Подскажите пожалуйста как исправить эту ошибку и что автор делает с её помощью.
Вот мой код :

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
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int cells (int i) 
{
if (i & 1)
return i / 4 * 2 + 1;
else
return (i - 1) / 4 * 2 + 2;
}
int main()
{
 
int n, k; 
scanf("%d%d",n,k);
if (k > 2*n-1) {
printf("0");
return 0;
}
 
vector < vector<int> > d (n*2, vector<int> (k+2));
for (int i=0; i<n*2; ++i)
d[i][0] = 1;
d[1][1] = 1;
for (int i=2; i<n*2; ++i)
for (int j=1; j<=k; ++j)
d[i][j] = d[i-2][j] + d[i-2][j-1] * (cells(i) - j + 1);
 
int ans = 0;
for (int i=0; i<=k; ++i)
ans += d[n*2-1][i] * d[n*2-2][k-i];
printf("%d",ans);
 
return 0;
}
Извиняюсь если этот вопрос уже задавали и ли данную задачу пожалуйста киньте ссылку на эту тему.

 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 12:35     Программа "ОФИЦЕРЫ"
Посмотрите здесь:

Что означают команды "fun", "my_max", "my_min" в C++? C++
C++ Что означает "Программа "[4872] laba!.exe: Машинный код" завершилась с кодом 3 (0x3)."?
что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими) C++
Программа "Аэрофлот", тема "Структура" C++
Как сделать, так чтобы i и j можно было вводить самому "i" И "j" в цикле, есть программа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
12.05.2011, 16:16     Программа "ОФИЦЕРЫ" #2
C++
1
2
using namespace std;
vector < vector<int> > d (n*2, vector<int> (k+2));
Intel
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 15
12.05.2011, 16:50  [ТС]     Программа "ОФИЦЕРЫ" #3
спасибо а я могу заменить это просто строкой int d[n*2][k+2]; ??
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.05.2011, 17:26     Программа "ОФИЦЕРЫ" #4
Intel, нет, не можете. Размер массива должен быть известен на этапе компиляции, т.е. быть константой. Можно использовать динамическое выделение памяти (оператор new), но зачем изобретать велосипед, когда есть вектор.
Intel
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 15
13.05.2011, 01:31  [ТС]     Программа "ОФИЦЕРЫ" #5
ну так оно и известно я же ввожу scanf("%d%d",n,k);
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
13.05.2011, 09:34     Программа "ОФИЦЕРЫ" #6
Intel, вам фраза "на этапе компиляции" о чём-нибудь говорит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2011, 15:19     Программа "ОФИЦЕРЫ"
Еще ссылки по теме:

C++ Написать программу которaя запрашиваeт у пользователя номер дня недели, затем выводит одно из сообщений "рабочий день", "суббота", "воскресенье"
C++ Как отключить автоматическое добавление "_" "@" "number" к имени экстернального метода?
На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Intel
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 15
13.05.2011, 15:19  [ТС]     Программа "ОФИЦЕРЫ" #7
да точно затупил исправлюсь) там нада будет еще массив этот инициализировать)всем спасибо за разъяснения и потраченное время
Yandex
Объявления
13.05.2011, 15:19     Программа "ОФИЦЕРЫ"
Ответ Создать тему
Опции темы

Текущее время: 12:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru