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

Порядок перестановок - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Списки http://www.cyberforum.ru/cpp-beginners/thread372606.html
Здравствуйте! Помогите пожалуйста с программой.... Надо вывести список поездов , а потом вывести поезда которые отправляются в определенное время(к примеру: надо вывести поезда которые отправляются...
C++ Метод итерации( Якоби) Доброго времени суток!) может у кого есть исходник или поможет решит поставленную задачу. Нужно написать программу которая решит систему линейных уравнений методом Якоби... сколько уже перечитал... http://www.cyberforum.ru/cpp-beginners/thread372592.html
строки C++
помогите пож-ста с задачкой: даётся определённый набор слов (н-р:зелёный, варённый, тварное, угарное, старая), выяснить сколько в ней прилагательных единственного числа, т.е. слов оканчивающихся на...
C++ Классы. Протокол класса. Конструкторы и деструкторы
Создать класс «матрица». Данный класс должен содержать элементы типа int, определяющие число строк, столбцов и состояние ошибки. Определить конструктор без параметров, конструктор с одним параметром,...
C++ Массивы. http://www.cyberforum.ru/cpp-beginners/thread372574.html
Доброго времени суток. Помогите решить задачу: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму положительных элементов массива; 2) произведение элементов...
C++ Найти минимальное число Даны натуральные числа k,n и действительные числа а1,...,аkn (где "1" и "kn" - индексы значений). Получить минимальное число,т.е. найти его. k,n - это не массивы с чисел,а просто два разных числа подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.10.2011, 23:04
PointsEqual, эта задача на комбинаторику. При тех значениях N и К, которые заданы - вычисление затянется на долго.

Shato, Вот почти Ваша задача: http://********/index.asp?main=task&id_task=189
Отличие только в том, в Вашем варианте нужно использовать __int64.
Вот код для той задачи (когда-то давно делал):
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
45
46
47
48
49
50
#include <stdio.h>
int fac(int a)
{
    if(a==0 || a==1)
        return 1;
    int temp=1;
    for(int i=2; i<=a; i++)
        temp*=i;
    return temp;
}
 
int main(){
    int N, K, *mas_rez, *mas, i, j, col, temp;
  freopen("input.txt","r",stdin);
 freopen("output.txt","w",stdout);
 scanf("%d %d", &N, &K);
 mas_rez=new int[N];
 mas=new int[N];
 for(i=0; i<N; i++)
     mas[i]=0;
 for(i=0; i<N; i++)
 {
     if(i<N-1)
     {
     temp=fac(N-i);
     temp/=(N-i);
     temp=((K-1)/temp)%(N-i);
     col=0;
     temp++;
     for(j=0; j<N && temp!=0; j++)
     {
         if(mas[j]==0)
            temp--;
         if(temp==0)
             col=j;
     }
     mas_rez[i]=col+1;
     mas[col]=1;
     }
     else
     {
         for(j=0; j<N; j++)
             if(!mas[j])
                 mas_rez[N-1]=j+1;
     }
 }
 for(i=0; i<N; i++)
     printf("%d ", mas_rez[i]);
   return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru