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

Генерация сочетаний из k элементов по n в лексикографическом порядке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать программу Численное интегрирование методам Симпсона! http://www.cyberforum.ru/cpp-beginners/thread832445.html
Heeelp!!!
C++ Разработать программу Численное интегрирование методам Чебышева! Heeelp!!!! http://www.cyberforum.ru/cpp-beginners/thread832441.html
C++ Разработать программу Численное интегрирование методам Ньютона-Котеса!
помогите в реализации программы
C++ Рекурсия (алгоритм сжатия изображения методом Шеннон-Фано)
Мне задали реализовать алгоритм сжатия изображения методом Шеннон-Фано. Доступ к пикселям получил. Подсчитал сколько всего в моём изображение пикселей с определённым значением. Рассчитал вероятность. (+Всё это дело записал в массив структур. Для компоненты r из rgb понадобился всего массив структур с размерностью 8. Сначала хочу закодировать одну компоненту так как задачу нахрапом не решить.+) ...
C++ Запись в массив http://www.cyberforum.ru/cpp-beginners/thread832417.html
Всем привет! Задача: Есть сотрудники,id каждого надо запихнуть в массив. Сколько сотрудников заранее не известно. После добавления нового id будет предложение добавить еще одного сотрудника. Верно ли и можно ли делать так: Привожу зачаток программы, который добавляет новый элемент #include <iostream> #include <string.h>
C++ Передача параметров в функцию по ссылке • Реализовать функцию, обеспечивающую ввод данных с клавиатуры и их проверку на корректность; тип и диапазон значений определить самостоятельно. • Написать функцию, возвращающую наибольший общий делитель двух натуральных чисел. • Написать функцию сокращения дроби. • Написать функцию, вычисляющую сумму двух дробей, соответствующую своему варианту. Возвращаемая дробь должна быть несократимой.... подробнее

Показать сообщение отдельно
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
09.04.2013, 14:43     Генерация сочетаний из k элементов по n в лексикографическом порядке
inham130,
Вот мой код :
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
#include <iostream>
#include <cmath>
#include <stack>
#include <algorithm>
#include <limits>
#include <string>
 
using namespace std;
 
int n, m;
stack <int> ans;
 
void brute(int pos, int cnt, int mask){
    if (cnt > m)
        return;
    if (pos == n){
        if (cnt == m)
            ans.push(mask);
        return;
    }
    brute(pos+1, cnt, mask);
    brute(pos+1, cnt+1, mask | (1<<pos));
}
 
int main(){
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    cin >> n >> m;
    brute(0, 0, 0);
    printf("%d\n", ans.size());
    while (!ans.empty()){
        for (int j = 0; j < n; j++){
            if (ans.top() & (1<<j))printf("%d ", j+1);  
        }
        ans.pop();
        printf("\n");
    }
    return 0;
}
 
Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru