Здравствуйте, как задать такой граф в языке C++?
Далее всюду n — натуральное число. Назовем граф с множествами вершин
V = {0, 1, 2, . . ., 2n−1}
и ребер
E = {(i, i + 1) | i = 0, 2n − 1, i четное} ∪ {(i, i + 2) | i = 0, 2n − 1}
(сложение по модулю 2n) призмой P(n).
Для представления использую матрицу смежности.
Ну, у вас есть какая-то матрица смежности, типа
vector<vector<int>> V(2*n, vector<int>(2*n,0));
Дальше - просто циклами:
{(i, i+1) | i = 0, 2n − 1, i четное}
for(int i = 0; i < 2*n; ++i)
{
if (i%2) continue; // нечетное
V[i%(2*n)][(i+1)%(2*n)] = 1;
// Если не ориентированный -
V[(i+1)%(2*n)][i%(2*n)] = 1;
}
{(i, i+2) | i = 0, 2n − 1} - аналогично
for(int i = 0; i < 2*n; ++i)
{
V[i%(2*n)][(i+2)%(2*n)] = 1;
// Если не ориентированный -
V[(i+2)%(2*n)][i%(2*n)] = 1;
}
"По-моему, так" (с) Пух
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости