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

Построить эйлерову цепь в графе. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ MinGW запрет неявного преобразования типов http://www.cyberforum.ru/cpp-beginners/thread337306.html
Существует ли какой то режим у gcc (MinGW) где бы компилятор "ругался" или хотя бы предупреждал о неявном преобразование типов? Причем не важно: int -> double или double -> int
C++ Помогите написать программку - лотерею Я сам только окончил первый курс технаря...учусь отлично...решил, что пока каникулы, заняться изучением C++......как-то он меня увлек....вчера в голову пришла идея, написать программку - лотерею...типа вводишь несколько чисел подряд, программка их перебирает и выводит какое-то число на экран.... P.s. программка легкая, но я повторюсь, что я занимаюсь самостоятельным изучением.....помогите... http://www.cyberforum.ru/cpp-beginners/thread337273.html
опрератор bool C++
Всем привет!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body
Подключение библиотеки(timeGetTime()) C++
Проблема вот в чем - компилирую програму (использую таймер-> timeGetTime() )...выводит ошибку undefined reference to 'timeGetTime@0' читал на сайте что нужно #include <mmsystem.h> #pragma comment(lib, "winmm.lib") сделал - ошибку все ровно выдает... Подозреваю что в наличии библиотеки нет (я использую Code::Blocks)
C++ Управление временем http://www.cyberforum.ru/cpp-beginners/thread337213.html
Как управлять временем? Например хочу написать программу, которая каждые 5 секунд выводит сообщение "Hi!". Скажи как это реализовать и если можно, предоставьте полный код программы.
C++ Где косяк в коде? Вообщем нужно к матрице коэффициентов системы линейных уравнений дописать справа столбец свободных членов. Написал код. На маленьких матрицах работает, а на больших - нет Помогите! using namespace std; int main() { ifstream fin11("5.txt"); int range = 3; double*free = new double; int qwer = 0; while ( fin11 >> free) подробнее

Показать сообщение отдельно
k_a_t_y
 Аватар для k_a_t_y
10 / 10 / 1
Регистрация: 01.02.2011
Сообщений: 99
31.07.2011, 18:12  [ТС]     Построить эйлерову цепь в графе.
Помогите исправить код:
int main() {

int n;
vector <vector<int> > g (n, vector<int> (n));
// ... чтение графа в матрицу смежности ...

vector<int> deg (n);
for (int i=0; i<n; ++i)
for (int j=0; j<n; ++j)
deg[i] += g[i][j];

int first = 0;
while (!deg[first]) ++first;

int v1 = -1, v2 = -1;
bool bad = false;
for (int i=0; i<n; ++i)
if (deg[i] & 1)
if (v1 == -1)
v1 = i;
else if (v2 == -1)
v2 = i;
else
bad = true;

if (v1 != -1)
++g[v1][v2], ++g[v2][v1];

stack<int> st;
st.push (first);
vector<int> res;
while (!st.empty())
{
int v = st.top();
int i;
for (i=0; i<n; ++i)
if (g[v][i])
break;
if (i == n)
{
res.push_back (v);
st.pop();
}
else
{
--g[v][i];
--g[i][v];
st.push (i);
}
}

if (v1 != -1)
for (size_t i=0; i+1<res.size(); ++i)
if (res[i] == v1 && res[i+1] == v2 || res[i] == v2 && res[i+1] == v1)
{
vector<int> res2;
for (size_t j=i+1; j<res.size(); ++j)
res2.push_back (res[j]);
for (size_t j=1; j<=i; ++j)
res2.push_back (res[j]);
res = res2;
break;
}

for (int i=0; i<n; ++i)
for (int j=0; j<n; ++j)
if (g[i][j])
bad = true;

if (bad)
puts ("-1");
else
for (size_t i=0; i<res.size(); ++i)
printf ("%d ", res[i]+1);

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