Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2011, 00:09   #1
Guzal
Форумчанин
 
Аватар для Guzal
 
Регистрация: 11.09.2010
Сообщений: 101
По умолчанию как считать граф?С++

обычно считывается матрица смежности но в этом коде мне не понятно как идет чтение графа если он в векторе...
Код:
#include <iostream>
#include <vector>
using namespace std;
	int n;
vector < vector<int> > g;
... чтение графа ...

vector<char> part (n, -1);
bool ok = true;
vector<int> q (n);
for (int st=0; st<n; ++st)
	if (part[st] == -1) {
		int h=0, t=0;
		q[t++] = st;
		part[st] = 0;
		while (h<t) {
			int v = q[h++];
			for (size_t i=0; i<g[v].size(); ++i) {
				int to = g[v][i];
				if (part[to] == -1)
					part[to] = !part[v],  q[t++] = to;
				else
					ok &= part[to] != part[v];
			}
		}
	}

puts (ok ? "YES" : "NO");
и еще, правда что графы можно проучить весь семестр , а потом с радостью забыть)?так же как некоторые тему дискретной математики?
I'm a rebel. [I think positively].
Guzal вне форума Ответить с цитированием
Старый 29.04.2011, 07:06   #2
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Вектор векторов = матрица
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 29.04.2011, 21:59   #3
Guzal
Форумчанин
 
Аватар для Guzal
 
Регистрация: 11.09.2010
Сообщений: 101
По умолчанию

то есть можно написать g[n][n]? и вводить матрицу смежности?
I'm a rebel. [I think positively].
Guzal вне форума Ответить с цитированием
Старый 30.04.2011, 09:34   #4
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

В случае с вектором - да
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить граф на связанность? Алгоритм Краскала PasSuper Общие вопросы C/C++ 10 18.01.2010 10:13
Как считать часы? tararam Microsoft Office Excel 4 18.09.2009 01:06
Как считать с txt? GaNDyPaC Общие вопросы Delphi 20 16.01.2009 22:02
как организовать граф(очень специфический) Kurk_SS Общие вопросы Delphi 10 09.05.2008 08:06