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

Особый цикл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ OpenCL vs CUDA. За и против каждой технологии http://www.cyberforum.ru/cpp-beginners/thread779521.html
В скором времени хочу начать изучать программирование на GPU, поэтому столкнулся с вопросом, а что вобщем учить то. Можете пожалуйста без холивара привести аргументы за или против одной из...
C++ Нахождение среднего арифметического Всем добрый день, я только начал изучать c++, столкнулся с проблемой: нужно вычислить вреднее арифметическое N величин. предисловие: переменные sum и k корректно вычисляются в цикле, остается только... http://www.cyberforum.ru/cpp-beginners/thread779517.html
C++ Много файлов, а толку - "0"
Вот разбил код на файлы и теперь непойму где сныкался - error. sfunc.h #ifndef FUNCTION_SNAKE_H #define FUNCTION_SNAKE_H void initMap(); // èíèöèàëèçàöèÿ êàðòû void showMap(); // ôóíêöèÿ...
Как перехватывать и обрабатывать события в динамически созданных классах? C++
Приветствую! Есть много разных классов и много динамически созданных экземпляров каждого из них. И вот в программе происходит какое-то событие (допустим клик мышью) и надо, чтобы всем экземплярам...
C++ Версионность проекта http://www.cyberforum.ru/cpp-beginners/thread779502.html
Ребята, подскажите, кто знает, как можно реализовать изменение версии проекта, например при каждом ребилде. Т.е. идея в том, что вношу какие-либо изменения, ребилдю проект, и у него автоматически...
C++ Ошибки в "классе" 1. Поясните, какие файлы должны лежать в одной директории с этой программой? 2.Компилирую в среде Microsoft Visual Studio 2010 и при запуске данного кода: ошибка не удается запустить файл проекта,не... подробнее

Показать сообщение отдельно
St-Voland
171 / 79 / 3
Регистрация: 05.12.2012
Сообщений: 217
05.02.2013, 17:31
Пускай у Вас есть N точек и требуется найти все K-элементные подмножества и что-то с ними сделать.
Если совсем по деревенски, то я это вижу как-то так:
// Здесь, array - массив точек, result - результ( в каком-то твоем виде ), placesArray - вектор, временно хранящий позиции выбранных элементов. Код очень схематический, поскольку все равно четко сформулированной задачи я не понял
В программе запускаешь do_step_for_i( result, array, placesArray )
Smth, YourType - Ваши форматы результата и условия.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool do_step_for_i( Smth& result, const YourType& array, vector& placesArray, int place = 0, int i = K )
{
if ( i == 0 )
{
//Делаешь, что хочешь - выбранные элементы маркируются значениями в placesArray
return false;
}
 
for ( int k = place; k < N - i; ++k )
{
placesArray.push_back( k );
do_step_for_i(  result, array, placesArray, k + 1, i - 1 );
placesArray.pop_back( k );
}
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru