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

Определить количество комбинаций разноцветных полосок, расположенных по определенной схеме - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Член класса управляемый не может относиться к типу класса не управляемый http://www.cyberforum.ru/cpp-beginners/thread1223284.html
"член класса управляемый не может относиться к типу класса не управляемый" Не могу понять что делать с этой ошибкой и как исправить
C++ Как расшифровывается библиотека cstdlib? ... http://www.cyberforum.ru/cpp-beginners/thread1223268.html
Что применить "\n" или "endl"? C++
Эти две операции похожи - они переходят на новую строку. Но endl очищает буфер, но при этом дольше выполняется. Так что же лучше применять?
C++ Позиционирование в потоке, переставить все нулевые элементы в начало файла
создать функцию, которая с использованием функций позиционирования в потоке переставляет все нулевые элементы в начало файла содержащего файла, переданного ей???????????
C++ Как считается угол альфа http://www.cyberforum.ru/cpp-beginners/thread1223238.html
#include<iostream> #include<cmath> using namespace std; int main() { setlocale(0,""); double alpha,V,L,k; const double g=9.8; cout<<"Введите угол:\n"; cin>>alpha;
C++ Проблема с указателем на функцию Доброго времени суток, пишу приложение, которое реализует все функции АТД (двусвязный список). Есть стандартная библиотека, есть функция в этой библиотеке int DLWalk(DLLIST *List, int(*Func)(int, void *, void *), void *Args) { DLLIST *ThisItem = List; int Result = 0; if(List != NULL) подробнее

Показать сообщение отдельно
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
06.07.2014, 20:12     Определить количество комбинаций разноцветных полосок, расположенных по определенной схеме
Керра, вот ток что сдал комбинаторикой!

C++ (Qt)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma comment(linker, "/STACK:167177216")
 
#include <stdio.h>
#include <stack>
#include <math.h>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <memory.h>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <time.h>
#include <cassert>
#include <cstring>
//#include <unordered_set>
 
using namespace std;
 
#define mp make_pair
#define pb push_back
#define pii pair<int, int>
#define forn(i, n) for(int i = 0; i < (int)(n); i++)
#define x first
#define y second
 
typedef long long li;
typedef long double ld;
typedef unsigned long long uli;
 
const int INF = 1e9;
const ld eps = 1e-9;
const li MOD = (li)(4e6 + 37);
const li INF64 = (li)(INF) * (li)(INF);
 
const int ddx[] = {-1, 1, 1, -1};
const int ddy[] = {1, 1, -1, -1};
const int dx[] = {-1, -1, 0, 1, 1, 1, 0, -1};
const int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};
const int dx4[] = {-1, 0, 1, 0};
const int dy4[] = {0, 1, 0, -1};
const int dxh[] = {-1, -1, -1, 1, 1, 1, 1, -1};
const int dyh[] = {1, -1, -1, -1, -1, 1, 1, 1};
const string dirs[] = {"RIGHT", "UP", "LEFT", "DOWN"};
 
bool in(int i, int j, int n, int m)
{
    return i >= 1 && i <= n && j >= 1 && j <= m;
}
 
li c[111][111];
 
int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    //freopen("errors.txt", "w", stderr);
    //ios_base::sync_with_stdio(false);
    int n;
    cin >> n;
 
    if(n == 1)
    {
        cout << 2 << endl;
        return 0;
    }
 
    for(int i = 1; i <= 100; i++)
    {
        c[i][0] = c[i][i] = 1;
        for(int j = 1; j < i; j++)
            c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
    }
 
    li ans = 0;
    for(int r = 1; r <= n; r++)
        for(int w = 1; w <= n; w++)
        {
            if(abs(r - w) > 1)
                continue;
            int left = n - r - w;
            if(left < 0)
                continue;
            
            li cur = c[r + w - 1][left];
            if(r == w)
                cur *= 2LL;
            ans += cur;
        }
 
    cout << ans << endl;
    return 0;
}
 
Текущее время: 03:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru