Size: a a a

2021 June 18

MK

Matwey Kornilov in pro.algorithms
Господа
источник

MK

Matwey Kornilov in pro.algorithms
Есть несвязный граф заданный в виде матрицы смежности. Как найти число связных подграфов?
источник

MK

Matwey Kornilov in pro.algorithms
Я даже хочу не само число, а его оценку
источник

VS

Victor Shamparov in pro.algorithms
1. Граф неориентированный?
2. Могут ли 2 различных ребра соединять одни и те же вершины?
источник

MK

Matwey Kornilov in pro.algorithms
1. неориентированный
2. могут
источник

MK

Matwey Kornilov in pro.algorithms
но дубликаты можно поудалять наверное
источник

D

Dword in pro.algorithms
Для каждой компоненты можно посчитать число остовов с помощью матричной теоремы Кирхгофа. Пусть для текущей компоненты это C. Тогда число связных подграфов компоненты точно не превосходит 1/2 * C * 2^{|E_i| - |V_i|}, где |V_i| - число вершин компоненты, |E_i| - число ребер. Для разреженных графов я думаю оценка сойдет.
источник

D

Dword in pro.algorithms
У вас графы плотные или разреженные?
источник

MK

Matwey Kornilov in pro.algorithms
разреженный
источник

SS

Semion S in pro.algorithms
написать это куда сложнее чем нарисовать.
В итоге часть стреч всё равно потерял
источник

SS

Semion S in pro.algorithms
int halfAllEmployee = allEmployees.size() / 2;
//        List<Employee> leftSide;
//        LinkedList<Employee> rightSide;
//
//        leftSide = new ArrayList<>(allEmployees.subList(0, halfAllEmployee));
//        rightSide = new LinkedList<>(allEmployees.subList(halfAllEmployee, allEmployees.size()));
//
//
//        for (int i = 1; i < rightSide.size()+1; i++) {
//            Meets meet = realizeLogicOfMeetings(leftSide, rightSide, i);
//            meets.add(meet);
//            rightSide.push(rightSide.pollLast());
//        }
//        for (int i = 0; i < leftSide.size(); i++) {
//            Employee employee = leftSide.get(i);
//            for (int j = i + 1; j < leftSide.size(); j++) {
//                Employee employee1 = leftSide.get(j);
//
//                //meets.add(meets.size(), new Audition(employee, employee1));
//            }
//        }
//
//        return meets;
//
//    }
//
//    private Meets realizeLogicOfMeetings(List<Employee> leftSide, List<Employee> rightSide, int intNumber) {
//        List<Audition> current = new ArrayList<>();
//        for (int i = 0; i < rightSide.size() && i< leftSide.size(); i++) {
//            Employee leftEmployee = leftSide.get(i);
//            Employee rightEmployee = rightSide.get(i);
//            Audition audition = new Audition(leftEmployee, rightEmployee);
//            current.add(audition);
//        }
//        return new Meets(intNumber, current);
источник

S

Schrödingers Katze in pro.algorithms
Ну я на плюсах вчера набросал для чётных n
источник

S

Schrödingers Katze in pro.algorithms
А для нечётных нужно чуть повозиться
источник

SS

Semion S in pro.algorithms
Да, я тоже намучался
источник

SS

Semion S in pro.algorithms
@Override
public
@Override
public List<Meets> meetingsScheduler() {
   List<Employee> allEmployees = getAllEmployees();
   List<Meets> meets =
new ArrayList<>();

   
for (int weekNumber = 1; weekNumber < allEmployees.size(); weekNumber++) {
       meets.add(
new Meets(weekNumber, getPairs(weekNumber, allEmployees)));

   }
   
return meets;
}
private List<Audition> getPairs(int weekNumber, List<Employee> allEmployees) {
   List<Audition> result =
new ArrayList<>();

   
for (int i = 0; i < allEmployees.size(); i++) {
       Employee firstEmployee = allEmployees.get(i);
       
int secondIndex = i+weekNumber;
       
if (secondIndex<allEmployees.size()){
           Employee secondEmployee = allEmployees.get(secondIndex);
           result.add(
new Audition(firstEmployee, secondEmployee));
       }
   }
   
return result;
}
источник

SS

Semion S in pro.algorithms
Вот такая дичь работает, но не правильно
источник

S

Schrödingers Katze in pro.algorithms
А ты типо емплойи в двух разных массивах хранишь?
источник

S

Schrödingers Katze in pro.algorithms
Или как
источник

SS

Semion S in pro.algorithms
В Meet у меня есть дата лист Audition(пара Employee)
источник

SS

Semion S in pro.algorithms
дата и лист
источник