Size: a a a

2020 April 28

Ш

ШаХа in pro.algorithms
но не понятно как найти ответы без нахождения самого цикла
источник

Ш

ШаХа in pro.algorithms
мб кто знает ?)
источник

CD

Constantine Drozdov in pro.algorithms
ШаХа
вроде понятно что чтобы существовал ответ нужно чтобы в компоненте должно быть нечетный цикл
как откуда зачем
источник

CD

Constantine Drozdov in pro.algorithms
а, понял, чтобы не было (-1)^n собственной
источник

CD

Constantine Drozdov in pro.algorithms
ШаХа
но не понятно как найти ответы без нахождения самого цикла
короче. на физике учили методу "обозначай и властвуй"
обозначь в компоненте одну неизвестную за x
источник

O

Oil Field in pro.algorithms
источник

f

fashdrag (VladKov) in pro.algorithms
Как вычислить функцию эйлера на отрезке [1, 1e8] за < 3с ?
источник

K

Kotomord_λapki in pro.algorithms
fashdrag (VladKov)
Как вычислить функцию эйлера на отрезке [1, 1e8] за < 3с ?
ну так простые числа до 1e4
источник

f

fashdrag (VladKov) in pro.algorithms
Kotomord_λapki
ну так простые числа до 1e4
А дальше?
источник

K

Kotomord_λapki in pro.algorithms
ну по определению - раскладываем число на простые,  потом формула
phi(П p_i^k_i) =  П (p_i - 1)p_i^{k_i - 1}
источник

f

fashdrag (VladKov) in pro.algorithms
Все 1e8 чисел будешь раскладывать?
источник

f

fashdrag (VladKov) in pro.algorithms
Переслано от Kotomord_λapki
ну по определению - раскладываем число на простые,  потом формула
phi(П p_i^k_i) =  П (p_i - 1)p_i^{k_i - 1}
источник

MB

Mikail Bagishov in pro.algorithms
fashdrag (VladKov)
Как вычислить функцию эйлера на отрезке [1, 1e8] за < 3с ?
Можно линейным решетом. Зная min_prime, там парочка несложных ДП возникает
источник

f

fashdrag (VladKov) in pro.algorithms
Mikail Bagishov
Можно линейным решетом. Зная min_prime, там парочка несложных ДП возникает
У меня получается что то не с линейным решетом за 5,5 с. Я считаю минимальный простой делитель, после по определению phi(ab) = phi(a) * phi(b), делю составное число на максимальную степень простого (res), чтобы получить два взаимно простых числа и вычисляю как phi[i] = phi[i/res] * phi[res]
Как это можно развить?
источник

MB

Mikail Bagishov in pro.algorithms
fashdrag (VladKov)
У меня получается что то не с линейным решетом за 5,5 с. Я считаю минимальный простой делитель, после по определению phi(ab) = phi(a) * phi(b), делю составное число на максимальную степень простого (res), чтобы получить два взаимно простых числа и вычисляю как phi[i] = phi[i/res] * phi[res]
Как это можно развить?
res за константу ищешь?
источник

f

fashdrag (VladKov) in pro.algorithms
Mikail Bagishov
res за константу ищешь?
Нет. Делю пока делится. В худшем случае это двоичный логарифм. Можно бинпоиском, но думаю константа хуже будет, хоть и log log n
Но не пробовал
источник

MV

Mikhail Voronov in pro.algorithms
fashdrag (VladKov)
У меня получается что то не с линейным решетом за 5,5 с. Я считаю минимальный простой делитель, после по определению phi(ab) = phi(a) * phi(b), делю составное число на максимальную степень простого (res), чтобы получить два взаимно простых числа и вычисляю как phi[i] = phi[i/res] * phi[res]
Как это можно развить?
а заранее посчитать часть простых чисел нельзя?
источник

MB

Mikail Bagishov in pro.algorithms
fashdrag (VladKov)
Нет. Делю пока делится. В худшем случае это двоичный логарифм. Можно бинпоиском, но думаю константа хуже будет, хоть и log log n
Но не пробовал
Думаю, быстрее ДПшкой считать
источник

f

fashdrag (VladKov) in pro.algorithms
Mikail Bagishov
Думаю, быстрее ДПшкой считать
А как? У меня не получается.
источник

MB

Mikail Bagishov in pro.algorithms
mp_pow[n] = mp[n]
prev := n / mp[n]
if mp[n] == mp[prev] {
   mp_pow[n] *= mp_pow[prev]
}
источник